aboutsummaryrefslogtreecommitdiff
path: root/src/server/apis/google/CustomizedWrapper
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/apis/google/CustomizedWrapper')
-rw-r--r--src/server/apis/google/CustomizedWrapper/filters.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/server/apis/google/CustomizedWrapper/filters.js b/src/server/apis/google/CustomizedWrapper/filters.js
new file mode 100644
index 000000000..576a90b75
--- /dev/null
+++ b/src/server/apis/google/CustomizedWrapper/filters.js
@@ -0,0 +1,46 @@
+'use strict';
+
+const DateFilter = require('../common/date_filter');
+const MediaTypeFilter = require('./media_type_filter');
+const ContentFilter = require('./content_filter');
+
+class Filters {
+ constructor(includeArchivedMedia = false) {
+ this.includeArchivedMedia = includeArchivedMedia;
+ }
+
+ setDateFilter(dateFilter) {
+ this.dateFilter = dateFilter;
+ return this;
+ }
+
+ setContentFilter(contentFilter) {
+ this.contentFilter = contentFilter;
+ return this;
+ }
+
+ setMediaTypeFilter(mediaTypeFilter) {
+ this.mediaTypeFilter = mediaTypeFilter;
+ return this;
+ }
+
+ setIncludeArchivedMedia(includeArchivedMedia) {
+ this.includeArchivedMedia = includeArchivedMedia;
+ return this;
+ }
+
+ toJSON() {
+ return {
+ dateFilter: this.dateFilter instanceof DateFilter ? this.dateFilter.toJSON() : this.dateFilter,
+ mediaTypeFilter: this.mediaTypeFilter instanceof MediaTypeFilter ?
+ this.mediaTypeFilter.toJSON() :
+ this.mediaTypeFilter,
+ contentFilter: this.contentFilter instanceof ContentFilter ?
+ this.contentFilter.toJSON() :
+ this.contentFilter,
+ includeArchivedMedia: this.includeArchivedMedia
+ };
+ }
+}
+
+module.exports = Filters; \ No newline at end of file