diff options
Diffstat (limited to 'client/js/models/post_list.js')
| -rw-r--r-- | client/js/models/post_list.js | 49 |
1 files changed, 44 insertions, 5 deletions
diff --git a/client/js/models/post_list.js b/client/js/models/post_list.js index 8c2c9d4..5ec8f3a 100644 --- a/client/js/models/post_list.js +++ b/client/js/models/post_list.js @@ -7,23 +7,25 @@ const AbstractList = require("./abstract_list.js"); const Post = require("./post.js"); class PostList extends AbstractList { - static getAround(id, searchQuery) { + static getAround(id, searchQuery, cachenumber) { return api.get( uri.formatApiLink("post", id, "around", { - query: PostList._decorateSearchQuery(searchQuery || ""), + query: PostList.decorateSearchQuery(searchQuery || ""), fields: "id", + cachenumber: cachenumber, }) ); } - static search(text, offset, limit, fields) { + static search(text, offset, limit, fields, cachenumber) { return api .get( uri.formatApiLink("posts", { - query: PostList._decorateSearchQuery(text || ""), + query: PostList.decorateSearchQuery(text || ""), offset: offset, limit: limit, fields: fields.join(","), + cachenumber: cachenumber, }) ) .then((response) => { @@ -35,7 +37,44 @@ class PostList extends AbstractList { }); } - static _decorateSearchQuery(text) { + static getMedian(text, fields) { + return api + .get( + uri.formatApiLink("posts", "median", { + query: PostList.decorateSearchQuery(text || ""), + fields: fields.join(","), + }) + ) + .then((response) => { + return Promise.resolve( + Object.assign({}, response, { + results: PostList.fromResponse(response.results) + }) + ); + }); + } + + static reverseSearch(id, limit, threshold, fields) { + return api + .get( + uri.formatApiLink("post", id, "reverse-search", { + query: PostList.decorateSearchQuery(""), + limit: limit, + threshold: threshold, + fields: fields.join(","), + }) + ) + .then((response) => { + const results = response.similarPosts.map((sim) => sim.post); + return Promise.resolve( + Object.assign({}, response, { + results: PostList.fromResponse(results) + }) + ); + }); + } + + static decorateSearchQuery(text) { const browsingSettings = settings.get(); const disabledSafety = []; if (api.safetyEnabled()) { |