1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-10 19:29:56 +00:00
Files
seahub/frontend/src/utils/search-api.js
cir9no 73aa876540 feat/seasearch: add wiki search api (#6606)
* feat/seasearch: add wiki search api

* optimize variable name

* feat(wikisearch): add simple ui for wiki search

* chore: delete redundant code
2024-11-04 13:51:56 +08:00

67 lines
1.7 KiB
JavaScript

import cookie from 'react-cookies';
import axios from 'axios';
import { siteRoot } from './constants';
class SearchAPI {
init({ server, username, password, token }) {
this.server = server;
this.username = username;
this.password = password;
this.token = token;
if (this.token && this.server) {
this.req = axios.create({
baseURL: this.server,
headers: { 'Authorization': 'Token ' + this.token },
});
}
return this;
}
initForSeahubUsage({ siteRoot, xcsrfHeaders }) {
if (siteRoot && siteRoot.charAt(siteRoot.length - 1) === '/') {
var server = siteRoot.substring(0, siteRoot.length - 1);
this.server = server;
} else {
this.server = siteRoot;
}
this.req = axios.create({
headers: {
'X-CSRFToken': xcsrfHeaders,
}
});
return this;
}
_sendPostRequest(url, form) {
if (form.getHeaders) {
return this.req.post(url, form, {
headers: form.getHeaders()
});
} else {
return this.req.post(url, form);
}
}
searchItems(query_str, query_type, cancelToken) {
let url = this.server + '/api2/items-search/?query_str=' + query_str + '&query_type=' + query_type;
return this.req.get(url, { cancelToken: cancelToken });
}
searchWiki(query, search_wiki, cancelToken) {
let url = this.server + '/api/v2.1/wiki2/search/';
let data = {
query: query,
search_wiki: search_wiki
};
return this.req.post(url, data, { cancelToken: cancelToken });
}
}
let searchAPI = new SearchAPI();
let xcsrfHeaders = cookie.load('sfcsrftoken');
searchAPI.initForSeahubUsage({ siteRoot, xcsrfHeaders });
export default searchAPI;