graphicek/client/src/api/dashboards.ts

53 lines
1.1 KiB
TypeScript
Raw Normal View History

import { DashboardContent } from '@/utils/dashboard/parseDashboard'
2022-08-23 23:35:36 +02:00
import { request } from './request'
export type DashboardInfo = {
2022-09-03 21:35:36 +02:00
id: number
name: string
2022-08-23 23:35:36 +02:00
contents: string
}
export const getDashboards = () => request<DashboardInfo[]>('/api/dashboards')
2022-09-03 21:35:36 +02:00
export const getDashboard = (id: number) =>
request<DashboardInfo>(`/api/dashboards/${id}`)
2022-08-23 23:35:36 +02:00
export const createDashboard = (body: {
2022-09-03 21:35:36 +02:00
name: string
2022-08-23 23:35:36 +02:00
contents: DashboardContent
}) =>
request<DashboardInfo>(`/api/dashboards`, {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({
...body,
contents: JSON.stringify(body.contents),
}),
})
export const updateDashboard = ({
id,
...body
}: {
2022-09-03 21:35:36 +02:00
id: number
name: string
2022-08-23 23:35:36 +02:00
contents: DashboardContent
}) =>
2022-09-03 21:35:36 +02:00
request<DashboardInfo>(`/api/dashboards/${id}`, {
2022-08-23 23:35:36 +02:00
method: 'PUT',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({
...body,
contents: JSON.stringify(body.contents),
}),
})
export const deleteDashboard = (id: number) =>
request<DashboardInfo>(
`/api/dashboards/${id}`,
{
method: 'DELETE',
},
'void'
)