From 5bb2a7c45b9f490deef52d9c0ab509c1341a4e0b Mon Sep 17 00:00:00 2001 From: saturn Date: Tue, 21 Feb 2023 18:36:14 -0600 Subject: [PATCH] Add JSON endpoint for user autocomplete. --- lw2.lisp | 5 +++++ src/backend.lisp | 4 ++-- src/backends/accordius.lisp | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lw2.lisp b/lw2.lisp index 520e8de0..199ce440 100644 --- a/lw2.lisp +++ b/lw2.lisp @@ -1538,6 +1538,11 @@ signaled condition to *HTML-OUTPUT*." (if post-count (format nil " (~A)" post-count))))) ) +(define-json-endpoint (view-user-autocomplete forum-site "/-user-autocomplete") + (request-method + (:get (q) + (lw2-search-query q :indexes '("test_users"))))) + (define-json-endpoint (view-karma-vote-tag forum-site "/karma-vote/tag") (let ((auth-token *current-auth-token*)) (request-method diff --git a/src/backend.lisp b/src/backend.lisp index 16714dcb..1cd1041f 100644 --- a/src/backend.lisp +++ b/src/backend.lisp @@ -1009,7 +1009,7 @@ (lw2-query-string* :message :list (alist :view "messagesConversation" :conversation-id conversation-id) :fields *messages-index-fields*)) :auth-token auth-token))) -(define-backend-function lw2-search-query (query) +(define-backend-function lw2-search-query (query &key (indexes '("test_tags" "test_posts" "test_comments"))) (backend-algolia-search (call-with-http-response (lambda (req-stream) @@ -1021,7 +1021,7 @@ ("Referer" . "https://www.greaterwrong.com/") ("Content-Type" . "application/json")) :content (json:encode-json-alist-to-string - (alist "requests" (loop for index in '("test_tags" "test_posts" "test_comments") + (alist "requests" (loop for index in indexes collect (alist "indexName" index "params" (format nil "query=~A&hitsPerPage=20&page=0" (url-rewrite:url-encode query)))))) diff --git a/src/backends/accordius.lisp b/src/backends/accordius.lisp index 1af202c4..a9fdd9b0 100644 --- a/src/backends/accordius.lisp +++ b/src/backends/accordius.lisp @@ -41,7 +41,7 @@ (define-backend-operation get-post-body backend-accordius (post-id &key &allow-other-keys) (acons :tags (lw2-graphql-query (lambda () (values "tags/" `(("document_id" . ,post-id))))) (call-next-method))) -(define-backend-operation lw2-search-query backend-accordius (query) +(define-backend-operation lw2-search-query backend-accordius (query &key &allow-other-keys) (values (do-wl-rest-query "post_search/" `(("query" . ,query))) (do-wl-rest-query "comment_search/" `(("query" . ,query))))) -- 2.11.4.GIT