| |
| export type Doc = { |
| location: string; |
| name: string; |
| language: string; |
| version: string; |
| description: string; |
| fullName: string; |
| date: string; |
| docLink: string; |
| model: string; |
| }; |
|
|
| |
| export async function getDocs(): Promise<Doc[] | null> { |
| try { |
| const apiHost = |
| import.meta.env.VITE_API_HOST || 'https://docsapi.arc53.com'; |
|
|
| const response = await fetch(apiHost + '/api/combine'); |
| const data = await response.json(); |
|
|
| const docs: Doc[] = []; |
|
|
| data.forEach((doc: object) => { |
| docs.push(doc as Doc); |
| }); |
|
|
| return docs; |
| } catch (error) { |
| console.log(error); |
| return null; |
| } |
| } |
|
|
| export async function getConversations(): Promise< |
| { name: string; id: string }[] | null |
| > { |
| try { |
| const apiHost = |
| import.meta.env.VITE_API_HOST || 'https://docsapi.arc53.com'; |
|
|
| const response = await fetch(apiHost + '/api/get_conversations'); |
| const data = await response.json(); |
|
|
| const conversations: { name: string; id: string }[] = []; |
|
|
| data.forEach((conversation: object) => { |
| conversations.push(conversation as { name: string; id: string }); |
| }); |
|
|
| return conversations; |
| } catch (error) { |
| console.log(error); |
| return null; |
| } |
| } |
|
|
| export function getLocalApiKey(): string | null { |
| const key = localStorage.getItem('DocsGPTApiKey'); |
| return key; |
| } |
|
|
| export function getLocalRecentDocs(): string | null { |
| const doc = localStorage.getItem('DocsGPTRecentDocs'); |
| return doc; |
| } |
|
|
| export function getLocalPrompt(): string | null { |
| const prompt = localStorage.getItem('DocsGPTPrompt'); |
| return prompt; |
| } |
|
|
| export function setLocalApiKey(key: string): void { |
| localStorage.setItem('DocsGPTApiKey', key); |
| } |
|
|
| export function setLocalPrompt(prompt: string): void { |
| localStorage.setItem('DocsGPTPrompt', prompt); |
| } |
|
|
| export function setLocalRecentDocs(doc: Doc): void { |
| localStorage.setItem('DocsGPTRecentDocs', JSON.stringify(doc)); |
| let namePath = doc.name; |
| if (doc.language === namePath) { |
| namePath = '.project'; |
| } |
|
|
| let docPath = 'default'; |
| if (doc.location === 'local') { |
| docPath = 'local' + '/' + doc.name + '/'; |
| } else if (doc.location === 'remote') { |
| docPath = |
| doc.language + '/' + namePath + '/' + doc.version + '/' + doc.model + '/'; |
| } |
| const apiHost = import.meta.env.VITE_API_HOST || 'https://docsapi.arc53.com'; |
| fetch(apiHost + '/api/docs_check', { |
| method: 'POST', |
| headers: { |
| 'Content-Type': 'application/json', |
| }, |
| body: JSON.stringify({ |
| docs: docPath, |
| }), |
| }).then((response) => response.json()); |
| } |
|
|