Skip to content

Commit cd49049

Browse files
author
Mario Bodemann
committed
fix empty fields on assets in preview mode
closes #145
1 parent feceaee commit cd49049

File tree

6 files changed

+72
-12
lines changed

6 files changed

+72
-12
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
All notable changes to this project will be documented in this file.
33
This project adheres to [Semantic Versioning](http://semver.org/).
44

5+
## Version [3.2.1] - 2018-05-28
6+
- Fix: ignore empty asset fields
7+
58
## Version [3.2.0] - 2018-04-24
69
- Change: use https for asset urls.
710
- Change: Use CDA SDK 10.0.0 and throw if environments are used.
@@ -128,7 +131,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
128131
## Version 0.9.0 - 2015-05-18
129132
Initial release.
130133

131-
[unreleased]: https://github.com/contentful/vault/compare/vault-parent-3.2.0...HEAD
134+
[unreleased]: https://github.com/contentful/vault/compare/vault-parent-3.2.1...HEAD
135+
[3.2.0]: https://github.com/contentful/vault/compare/vault-parent-3.2.0...vault-parent-3.2.1
132136
[3.2.0]: https://github.com/contentful/vault/compare/vault-parent-3.1.1...vault-parent-3.2.0
133137
[3.1.1]: https://github.com/contentful/vault/compare/vault-parent-3.1.0...vault-parent-3.1.1
134138
[3.1.0]: https://github.com/contentful/vault/compare/vault-parent-3.0.2...vault-parent-3.1.0

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,24 @@ Grab via Maven:
1616
<dependency>
1717
<groupId>com.contentful.vault</groupId>
1818
<artifactId>compiler</artifactId>
19-
<version>3.2.0</version>
19+
<version>3.2.1</version>
2020
</dependency>
2121
<dependency>
2222
<groupId>com.contentful.vault</groupId>
2323
<artifactId>core</artifactId>
24-
<version>3.2.0</version>
24+
<version>3.2.1</version>
2525
</dependency>
2626
```
2727
or Gradle:
2828
```groovy
29-
apt 'com.contentful.vault:compiler:3.2.0'
30-
compile 'com.contentful.vault:core:3.2.0'
29+
apt 'com.contentful.vault:compiler:3.2.1'
30+
compile 'com.contentful.vault:core:3.2.1'
3131
```
3232
or Gradle 3.+:
3333
```groovy
34-
annotationProcessor 'com.contentful.vault:compiler:3.2.0'
35-
annotationProcessor 'com.contentful.vault:core:3.2.0'
36-
compile 'com.contentful.vault:core:3.2.0'
34+
annotationProcessor 'com.contentful.vault:compiler:3.2.1'
35+
annotationProcessor 'com.contentful.vault:core:3.2.1'
36+
compile 'com.contentful.vault:core:3.2.1'
3737
```
3838

3939
Note for Gradle users, make sure to use the [android-apt][apt] Gradle plugin, which lets you configure compile-time only dependencies.

core/src/main/java/com/contentful/vault/Sql.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ static String createLinks(String locale) {
7272
static String createAssets(String locale) {
7373
return "CREATE TABLE " + escape(localizeName(TABLE_ASSETS, locale)) + " ("
7474
+ StringUtils.join(RESOURCE_COLUMNS, ", ") + ","
75-
+ declareField(Asset.Fields.URL, "STRING", false, ", ")
76-
+ declareField(Asset.Fields.MIME_TYPE, "STRING", false, ", ")
75+
+ declareField(Asset.Fields.URL, "STRING", true, ", ")
76+
+ declareField(Asset.Fields.MIME_TYPE, "STRING", true, ", ")
7777
+ declareField(Asset.Fields.TITLE, "STRING", true, ", ")
7878
+ declareField(Asset.Fields.DESCRIPTION, "STRING", true, ", ")
7979
+ declareField(Asset.Fields.FILE, "BLOB", true, null)

core/src/main/java/com/contentful/vault/SyncRunnable.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,8 +220,10 @@ private void saveAsset(CDAAsset asset) {
220220
putResourceFields(asset, values);
221221
final LocalizedResource.Localizer localizer = asset.localize(locale);
222222
final Map<String, Object> file = localizer.getField("file");
223-
values.put(Asset.Fields.URL, "https:" + file.get("url"));
224-
values.put(Asset.Fields.MIME_TYPE, (String) file.get("contentType"));
223+
if (file != null) {
224+
values.put(Asset.Fields.URL, "https:" + file.get("url"));
225+
values.put(Asset.Fields.MIME_TYPE, (String) file.get("contentType"));
226+
}
225227
values.put(Asset.Fields.TITLE, localizer.<String>getField("title"));
226228
values.put(Asset.Fields.DESCRIPTION, localizer.<String>getField("description"));
227229

tests-integration/src/test/java/com/contentful/vaultintegration/SyncTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,28 @@ public class SyncTest extends SyncBase {
4242
assertThat(request.getPath()).isEqualTo("/spaces/space/sync?initial=true");
4343
}
4444

45+
@Test public void testAssetsInDraft() throws Exception {
46+
enqueue("assets/locales.json");
47+
enqueue("assets/types.json");
48+
enqueue("assets/empty.json");
49+
sync();
50+
51+
server.takeRequest(); // ignore locales request
52+
server.takeRequest(); // ignore content types request
53+
RecordedRequest request = server.takeRequest(); // analyse empty asset response
54+
assertThat(request.getPath()).isEqualTo("/spaces/space/sync?initial=true");
55+
56+
57+
List<Asset> assets = vault.fetch(Asset.class).all();
58+
59+
assertThat(assets).isNotNull();
60+
assertThat(assets).hasSize(1);
61+
62+
Asset asset = assets.get(0);
63+
assertThat(asset).isNotNull();
64+
assertThat(asset.file()).isNull();
65+
}
66+
4567
@Test public void testSync() throws Exception {
4668
// Initial
4769
enqueueInitial();
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"sys": {
3+
"type": "Array"
4+
},
5+
"items": [
6+
{
7+
"sys": {
8+
"space": {
9+
"sys": {
10+
"type": "Link",
11+
"linkType": "Space",
12+
"id": "cfexampleapi"
13+
},
14+
"environment": {
15+
"sys": {
16+
"id": "staging",
17+
"type": "Link",
18+
"linkType": "Environment"
19+
}
20+
}
21+
},
22+
"type": "Asset",
23+
"id": "id",
24+
"revision": 6,
25+
"createdAt": "2018-05-06T09:45:10.000Z",
26+
"updatedAt": "2018-06-18T13:27:14.917Z"
27+
},
28+
"fields": {}
29+
}
30+
],
31+
"nextSyncUrl": "http://cdn.contentful.com/spaces/cfexampleapi/sync?sync_token=st1"
32+
}

0 commit comments

Comments
 (0)