Spaces:
Running
Running
import { WEBUI_API_BASE_URL } from '$lib/constants'; | |
import { getTimeRange } from '$lib/utils'; | |
type NoteItem = { | |
title: string; | |
data: object; | |
meta?: null | object; | |
access_control?: null | object; | |
}; | |
export const createNewNote = async (token: string, note: NoteItem) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/notes/create`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
authorization: `Bearer ${token}` | |
}, | |
body: JSON.stringify({ | |
...note | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
error = err.detail; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getNotes = async (token: string = '') => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/notes/`, { | |
method: 'GET', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
authorization: `Bearer ${token}` | |
} | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err.detail; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
if (!Array.isArray(res)) { | |
return {}; // or throw new Error("Notes response is not an array") | |
} | |
// Build the grouped object | |
const grouped: Record<string, any[]> = {}; | |
for (const note of res) { | |
const timeRange = getTimeRange(note.updated_at / 1000000000); | |
if (!grouped[timeRange]) { | |
grouped[timeRange] = []; | |
} | |
grouped[timeRange].push({ | |
...note, | |
timeRange | |
}); | |
} | |
return grouped; | |
}; | |
export const getNoteById = async (token: string, id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/notes/${id}`, { | |
method: 'GET', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
authorization: `Bearer ${token}` | |
} | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err.detail; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const updateNoteById = async (token: string, id: string, note: NoteItem) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/notes/${id}/update`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
authorization: `Bearer ${token}` | |
}, | |
body: JSON.stringify({ | |
...note | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err.detail; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const deleteNoteById = async (token: string, id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/notes/${id}/delete`, { | |
method: 'DELETE', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
authorization: `Bearer ${token}` | |
} | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err.detail; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |