47 lines
1.0 KiB
TypeScript
47 lines
1.0 KiB
TypeScript
import type { Book } from './searcher';
|
|
import axios from 'axios';
|
|
|
|
import { JSON_ARCHIVE_WINDOW_KEY } from '../constants/system';
|
|
|
|
const http = axios.create({
|
|
baseURL: import.meta.env.VITE_BACKEND_BASE_API,
|
|
timeout: 5000
|
|
});
|
|
|
|
const storj = axios.create({
|
|
baseURL: import.meta.env.VITE_STORJ_JSON_URL,
|
|
timeout: 5000
|
|
});
|
|
|
|
export const getJsonArchive = async () => {
|
|
//@ts-ignore
|
|
if (!window[JSON_ARCHIVE_WINDOW_KEY]) {
|
|
|
|
const response = await storj.get(``);
|
|
|
|
if (response.status == 200) {
|
|
//@ts-ignore
|
|
window[JSON_ARCHIVE_WINDOW_KEY] = response.data as Book[];
|
|
} else {
|
|
|
|
console.log(response);
|
|
|
|
//@ts-ignore
|
|
window[JSON_ARCHIVE_WINDOW_KEY] = [];
|
|
}
|
|
|
|
//@ts-ignore
|
|
return window[JSON_ARCHIVE_WINDOW_KEY] as Book[];
|
|
|
|
|
|
} else {
|
|
//@ts-ignore
|
|
return window[JSON_ARCHIVE_WINDOW_KEY] as Book[];
|
|
}
|
|
}
|
|
|
|
|
|
export default async function search(query: string, limit: number) {
|
|
const response = await http.get(`search?limit=${limit}&query=${query}`);
|
|
return response.data.books as Book[];
|
|
} |