Skip to content
Snippets Groups Projects
Commit f37a73e8 authored by LinusCS's avatar LinusCS
Browse files

Added moderation and publish status to listings


Signed-off-by: default avatarLinusCS <linus.schulze@hsnet.de>
parent fba20ec2
No related tags found
1 merge request!74Added moderation and publish status to listings #24
...@@ -40,4 +40,5 @@ secret.properties ...@@ -40,4 +40,5 @@ secret.properties
config/*.crt config/*.crt
#NodeJS #NodeJS
node_modules/ node_modules/
\ No newline at end of file /bin/
...@@ -63,6 +63,8 @@ public class Listing extends NodeBase { ...@@ -63,6 +63,8 @@ public class Listing extends NodeBase {
private List<Author> authors; private List<Author> authors;
private List<Tag> tags; private List<Tag> tags;
private List<ListingVersion> versions; private List<ListingVersion> versions;
private String publishStatus;
private String moderationStatus;
/** /**
* Default constructor, sets lists to empty lists to stop null pointers * Default constructor, sets lists to empty lists to stop null pointers
...@@ -380,7 +382,35 @@ public class Listing extends NodeBase { ...@@ -380,7 +382,35 @@ public class Listing extends NodeBase {
Objects.requireNonNull(versions); Objects.requireNonNull(versions);
this.versions = new ArrayList<>(versions); this.versions = new ArrayList<>(versions);
} }
/**
* @return publishStatus
*/
public String getPublishStatus() {
return publishStatus;
}
/**
* @param publishStatus
*/
public void setPublishStatus(String publishStatus) {
this.publishStatus = publishStatus;
}
/**
* @param moderationStatus
*/
public String getModerationStatus() {
return moderationStatus;
}
/**
* @param moderationStatus
*/
public void setModerationStatus(String moderationStatus) {
this.moderationStatus = moderationStatus;
}
@Override @Override
public boolean validate() { public boolean validate() {
return super.validate() && license != null && !authors.isEmpty() && !categoryIds.isEmpty() return super.validate() && license != null && !authors.isEmpty() && !categoryIds.isEmpty()
......
...@@ -80,6 +80,8 @@ public class ListingCodec implements CollectibleCodec<Listing> { ...@@ -80,6 +80,8 @@ public class ListingCodec implements CollectibleCodec<Listing> {
doc.put(DatabaseFieldNames.CATEGORY_IDS, value.getCategoryIds()); doc.put(DatabaseFieldNames.CATEGORY_IDS, value.getCategoryIds());
doc.put(DatabaseFieldNames.SCREENSHOTS, value.getScreenshots()); doc.put(DatabaseFieldNames.SCREENSHOTS, value.getScreenshots());
doc.put(DatabaseFieldNames.MARKET_IDS, value.getMarketIds()); doc.put(DatabaseFieldNames.MARKET_IDS, value.getMarketIds());
doc.put(DatabaseFieldNames.PUBLISH_STATUS, value.getPublishStatus());
doc.put(DatabaseFieldNames.MODERATION_STATUS, value.getModerationStatus());
// for nested document types, use the converters to safely transform into BSON // for nested document types, use the converters to safely transform into BSON
// documents // documents
...@@ -118,6 +120,8 @@ public class ListingCodec implements CollectibleCodec<Listing> { ...@@ -118,6 +120,8 @@ public class ListingCodec implements CollectibleCodec<Listing> {
out.setCategoryIds(document.getList(DatabaseFieldNames.CATEGORY_IDS, String.class)); out.setCategoryIds(document.getList(DatabaseFieldNames.CATEGORY_IDS, String.class));
out.setMarketIds(document.getList(DatabaseFieldNames.MARKET_IDS, String.class)); out.setMarketIds(document.getList(DatabaseFieldNames.MARKET_IDS, String.class));
out.setScreenshots(document.getList(DatabaseFieldNames.SCREENSHOTS, String.class)); out.setScreenshots(document.getList(DatabaseFieldNames.SCREENSHOTS, String.class));
out.setPublishStatus(document.getString(DatabaseFieldNames.PUBLISH_STATUS));
out.setModerationStatus(document.getString(DatabaseFieldNames.MODERATION_STATUS));
// for nested document types, use the converters to safely transform into POJO // for nested document types, use the converters to safely transform into POJO
out.setAuthors(document.getList(DatabaseFieldNames.LISTING_AUTHORS, Document.class).stream() out.setAuthors(document.getList(DatabaseFieldNames.LISTING_AUTHORS, Document.class).stream()
......
...@@ -37,7 +37,7 @@ public class ListingFilter implements DtoFilter<Listing> { ...@@ -37,7 +37,7 @@ public class ListingFilter implements DtoFilter<Listing> {
@Inject @Inject
DtoFilter<ListingVersion> listingVersionFilter; DtoFilter<ListingVersion> listingVersionFilter;
@Override @Override
public List<Bson> getFilters(RequestWrapper wrap, String root) { public List<Bson> getFilters(RequestWrapper wrap, String root) {
List<Bson> filters = new ArrayList<>(); List<Bson> filters = new ArrayList<>();
...@@ -73,6 +73,19 @@ public class ListingFilter implements DtoFilter<Listing> { ...@@ -73,6 +73,19 @@ public class ListingFilter implements DtoFilter<Listing> {
if (text.isPresent()) { if (text.isPresent()) {
filters.add(Filters.text(text.get())); filters.add(Filters.text(text.get()));
} }
// Listing publish status check
Optional<String> publishStatus = wrap.getFirstParam(UrlParameterNames.PUBLISH_STATUS);
if (publishStatus.isPresent()) {
filters.add(Filters.eq(DatabaseFieldNames.PUBLISH_STATUS, publishStatus.get()));
}
// Listing moderation status check
Optional<String> moderationStatus = wrap.getFirstParam(UrlParameterNames.MODERATION_STATUS);
if (moderationStatus.isPresent()) {
filters.add(Filters.eq(DatabaseFieldNames.MODERATION_STATUS, moderationStatus.get()));
}
return filters; return filters;
} }
...@@ -80,8 +93,8 @@ public class ListingFilter implements DtoFilter<Listing> { ...@@ -80,8 +93,8 @@ public class ListingFilter implements DtoFilter<Listing> {
public List<Bson> getAggregates(RequestWrapper wrap) { public List<Bson> getAggregates(RequestWrapper wrap) {
List<Bson> aggs = new ArrayList<>(); List<Bson> aggs = new ArrayList<>();
// adds a $lookup aggregate, joining categories on categoryIDS as "categories" // adds a $lookup aggregate, joining categories on categoryIDS as "categories"
aggs.add(Aggregates.lookup(DtoTableNames.LISTING_VERSION.getTableName(), DatabaseFieldNames.DOCID, DatabaseFieldNames.LISTING_ID, aggs.add(Aggregates.lookup(DtoTableNames.LISTING_VERSION.getTableName(), DatabaseFieldNames.DOCID,
DatabaseFieldNames.LISTING_VERSIONS)); DatabaseFieldNames.LISTING_ID, DatabaseFieldNames.LISTING_VERSIONS));
Bson filters = listingVersionFilter.wrapFiltersToAggregate(wrap, DatabaseFieldNames.LISTING_VERSIONS); Bson filters = listingVersionFilter.wrapFiltersToAggregate(wrap, DatabaseFieldNames.LISTING_VERSIONS);
if (filters != null) { if (filters != null) {
aggs.add(filters); aggs.add(filters);
......
...@@ -49,6 +49,8 @@ public final class DatabaseFieldNames { ...@@ -49,6 +49,8 @@ public final class DatabaseFieldNames {
public static final String FEATURE_ID = "feature_id"; public static final String FEATURE_ID = "feature_id";
public static final String INSTALL_STATE = "install_state"; public static final String INSTALL_STATE = "install_state";
public static final String SCREENSHOTS = "screenshots"; public static final String SCREENSHOTS = "screenshots";
public static final String PUBLISH_STATUS = "publish_status";
public static final String MODERATION_STATUS = "moderation_status";
// catalog fields // catalog fields
public static final String CATALOG_TABS = "tabs"; public static final String CATALOG_TABS = "tabs";
......
...@@ -34,6 +34,8 @@ public final class UrlParameterNames { ...@@ -34,6 +34,8 @@ public final class UrlParameterNames {
public static final String DATE_FROM = "from"; public static final String DATE_FROM = "from";
public static final String END = "end"; public static final String END = "end";
public static final String START = "start"; public static final String START = "start";
public static final String PUBLISH_STATUS = "publish_status";
public static final String MODERATION_STATUS = "moderation_status";
private UrlParameterNames() { private UrlParameterNames() {
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment