summaryrefslogtreecommitdiff
path: root/client/js/models/post_list.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/js/models/post_list.js')
-rw-r--r--client/js/models/post_list.js49
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()) {