diff --git a/src/main/java/org/eclipsefoundation/marketplace/dto/Listing.java b/src/main/java/org/eclipsefoundation/marketplace/dto/Listing.java index 89b8e4cd79453c2081308ccd3776f8aaf02844b1..cbc107c7c80f2b603a6567238a252057df5cdd0a 100644 --- a/src/main/java/org/eclipsefoundation/marketplace/dto/Listing.java +++ b/src/main/java/org/eclipsefoundation/marketplace/dto/Listing.java @@ -59,6 +59,7 @@ public class Listing extends NodeBase { private String license; private List<String> marketIds; private List<String> categoryIds; + private List<String> screenshots; private List<Category> categories; private Organization organization; private List<Author> authors; @@ -75,6 +76,7 @@ public class Listing extends NodeBase { this.marketIds = new ArrayList<>(); this.categoryIds = new ArrayList<>(); this.categories = new ArrayList<>(); + this.screenshots = new ArrayList<>(); } /** @@ -290,6 +292,20 @@ public class Listing extends NodeBase { this.marketIds = new ArrayList<>(marketIds); } + /** + * @return the screenshots + */ + public List<String> getScreenshots() { + return new ArrayList<>(screenshots); + } + + /** + * @param screenshots the screenshots to set + */ + public void setScreenshots(List<String> screenshots) { + this.screenshots = new ArrayList<>(screenshots); + } + /** * @return the categories */ @@ -394,7 +410,8 @@ public class Listing extends NodeBase { && Objects.equals(logo, other.logo) && Objects.equals(organization, other.organization) && Objects.equals(status, other.status) && Objects.equals(supportUrl, other.supportUrl) && Objects.equals(tags, other.tags) && Objects.equals(teaser, other.teaser) - && updateDate == other.updateDate && Objects.equals(versions, other.versions); + && updateDate == other.updateDate && Objects.equals(versions, other.versions) + && Objects.equals(screenshots, other.screenshots); } @Override @@ -421,6 +438,7 @@ public class Listing extends NodeBase { sb.append(", authors=").append(authors); sb.append(", tags=").append(tags); sb.append(", versions=").append(versions); + sb.append(", screenshots=").append(screenshots); sb.append(']'); return sb.toString(); } diff --git a/src/main/java/org/eclipsefoundation/marketplace/dto/codecs/ListingCodec.java b/src/main/java/org/eclipsefoundation/marketplace/dto/codecs/ListingCodec.java index 944bf96d207ec1543a75b03f886a43c99a2acf7c..0ba97a394d8329c8c5fdd2ba1fd8ab942dc475c5 100644 --- a/src/main/java/org/eclipsefoundation/marketplace/dto/codecs/ListingCodec.java +++ b/src/main/java/org/eclipsefoundation/marketplace/dto/codecs/ListingCodec.java @@ -80,6 +80,7 @@ public class ListingCodec implements CollectibleCodec<Listing> { doc.put(DatabaseFieldNames.CREATION_DATE, new Date(value.getCreationDate())); doc.put(DatabaseFieldNames.FOUNDATION_MEMBER_FLAG, value.isFoundationMember()); doc.put(DatabaseFieldNames.CATEGORY_IDS, value.getCategoryIds()); + doc.put(DatabaseFieldNames.SCREENSHOTS, value.getScreenshots()); doc.put(DatabaseFieldNames.MARKET_IDS, value.getMarketIds()); // for nested document types, use the converters to safely transform into BSON @@ -120,6 +121,7 @@ public class ListingCodec implements CollectibleCodec<Listing> { out.setFoundationMember(document.getBoolean(DatabaseFieldNames.FOUNDATION_MEMBER_FLAG)); out.setCategoryIds(document.getList(DatabaseFieldNames.CATEGORY_IDS, String.class)); out.setMarketIds(document.getList(DatabaseFieldNames.MARKET_IDS, String.class)); + out.setScreenshots(document.getList(DatabaseFieldNames.SCREENSHOTS, String.class)); // for nested document types, use the converters to safely transform into POJO out.setAuthors(document.getList(DatabaseFieldNames.LISTING_AUTHORS, Document.class).stream() diff --git a/src/main/java/org/eclipsefoundation/marketplace/namespace/DatabaseFieldNames.java b/src/main/java/org/eclipsefoundation/marketplace/namespace/DatabaseFieldNames.java index bad77d419d83968eb683170a0d8146b1dee5dca6..a205252b94b30705869b6599f07bc7e65ae6c370 100644 --- a/src/main/java/org/eclipsefoundation/marketplace/namespace/DatabaseFieldNames.java +++ b/src/main/java/org/eclipsefoundation/marketplace/namespace/DatabaseFieldNames.java @@ -48,6 +48,7 @@ public final class DatabaseFieldNames { public static final String FEATURE_IDS = "feature_ids"; public static final String FEATURE_ID = "feature_id"; public static final String INSTALL_STATE = "install_state"; + public static final String SCREENSHOTS = "screenshots"; // catalog fields public static final String CATALOG_TABS = "tabs"; diff --git a/src/main/node/index.js b/src/main/node/index.js index 5bbf210026abd738c85dab42ab9d7d7e96a94763..e5ccda6eaf3c57d0eda4fd4220cae7ad7a1476d3 100644 --- a/src/main/node/index.js +++ b/src/main/node/index.js @@ -72,7 +72,7 @@ function createListing(count) { console.log(`Generating listing ${count} of ${max}`); var json = generateJSON(uuid.v4()); - axios.post(argv.s+"/listings/", json) + instance.put(argv.s+"/listings/", json) .then(() => { var installs = Math.floor(Math.random()*argv.i); console.log(`Generating ${installs} install records for listing '${json.id}'`); @@ -152,7 +152,8 @@ function generateJSON(id) { ], "versions": solutions, "market_ids": splice(marketIds).splice(0,Math.ceil(Math.random()*2)), - "category_ids": splice(categoryIds).splice(0,Math.ceil(Math.random()*5)) + "category_ids": splice(categoryIds).splice(0,Math.ceil(Math.random()*5)+1), + "screenshots": ["http://www.example.com/img/sample.png"] }; }