123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- 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;
- };
|