import { getDefaultClient } from '../../factory' import type { DashboardCreateReqVO, DashboardCreateRespVO, DashboardFetchOptionsRespVO, DashboardGetListRespVO, DashboardUpdateLayoutReqVO, DashboardUpdateLayoutRespVO, DashboardUpdateOptionsReqVO, DashboardUpdateOptionsRespVO, DashboardUpdateTitleReqVO, DashboardUpdateTitleRespVO } from '../../types/dashboard' // @endpoint POST /apps/:app_id/dashboard // @controller Dashboard.Create export async function createDashboard( appId: string, data: DashboardCreateReqVO ): Promise { return getDefaultClient().post(`/apps/${appId}/dashboard`, data) } // @endpoint GET /apps/:app_id/dashboard/:dashboard_id/options // @controller Dashboard.FetchOptions export async function getDashboardOptions( appId: string, dashboardId: string ): Promise { return getDefaultClient().get(`/apps/${appId}/dashboard/${dashboardId}/options`) } // @endpoint GET /apps/:app_id/dashboard // @controller Dashboard.GetList export async function getDashboardList( appId: string ): Promise { return getDefaultClient().get(`/apps/${appId}/dashboard`) } // @endpoint PUT /apps/:app_id/dashboard/:dashboard_id/layout // @controller Dashboard.UpdateLayout export async function updateDashboardLayout( appId: string, dashboardId: string, data: DashboardUpdateLayoutReqVO ): Promise { return getDefaultClient().put(`/apps/${appId}/dashboard/${dashboardId}/layout`, data) } // @endpoint PUT /apps/:app_id/dashboard/:dashboard_id/options // @controller Dashboard.UpdateOptions export async function updateDashboardOptions( appId: string, dashboardId: string, data: DashboardUpdateOptionsReqVO ): Promise { return getDefaultClient().put(`/apps/${appId}/dashboard/${dashboardId}/options`, data) } // @endpoint PUT /apps/:app_id/dashboard/:dashboard_id/label // @controller Dashboard.UpdateTitle export async function updateDashboardTitle( appId: string, dashboardId: string, data: DashboardUpdateTitleReqVO ): Promise { return getDefaultClient().put(`/apps/${appId}/dashboard/${dashboardId}/label`, data) } // @endpoint DELETE /apps/:app_id/dashboard/:dashboard_id // @controller Dashboard.Delete export async function deleteDashboard( appId: string, dashboardId: string ): Promise { return getDefaultClient().delete(`/apps/${appId}/dashboard/${dashboardId}`) } // @endpoint POST /apps/:app_id/dashboard/:dashboard_id/clone // @controller Dashboard.Clone export async function cloneDashboard( appId: string, dashboardId: string, data: { name: string } ): Promise { return getDefaultClient().post(`/apps/${appId}/dashboard/${dashboardId}/clone`, data) }