69 lines
2.5 KiB
JavaScript
69 lines
2.5 KiB
JavaScript
import {createApi, mockApi} from '../common/Common'
|
|
|
|
const base = '/api/v1/dashboards'
|
|
|
|
/*class DashboardWidget {
|
|
id: number,
|
|
type: "feed" | "chart" | "video" | "youtube",
|
|
name?: string,
|
|
source?: Feed | Chart,
|
|
limit?: number,
|
|
url?: string
|
|
}
|
|
|
|
class Dashboard {
|
|
id: ...
|
|
name: string,
|
|
layout: any,
|
|
widgets: DashboardWidget[]
|
|
}
|
|
*/
|
|
|
|
//export const getDashboards = createApi('GET', base);
|
|
export const getDashboards = mockApi([
|
|
{id: 1, name: 'My Dashboard', layout: '{ver: 1, left: [1, 2], right: [3, 4]}', widgets: [
|
|
{id: 1, type: 'feed', name: 'Widget1', source: {id: 1}, limit: 5},
|
|
{id: 2, type: 'feed', name: 'Widget2', source: {id: 2}, limit: 5},
|
|
{id: 3, type: 'feed', name: 'Widget3', source: {id: 3}, limit: 5},
|
|
{id: 4, type: 'feed', name: 'Widget4', source: {id: 4}, limit: 5}
|
|
]},
|
|
{id: 2, name: 'Dashboard 2', layout: '{ver: 1, left: [5, 6, 7], right: [8]}', widgets: [
|
|
{id: 5, type: 'feed', name: 'Widget5', source: {id: 1}, limit: 5},
|
|
{id: 6, type: 'feed', name: 'Widget6', source: {id: 2}, limit: 5},
|
|
{id: 7, type: 'feed', name: 'Widget7', source: {id: 3}, limit: 5},
|
|
{id: 8, type: 'feed', name: 'Widget8', source: {id: 4}, limit: 5}
|
|
]},
|
|
{id: 44, name: 'Not_my_dashboard', layout: '{ver: 1, left: [], right: [9, 10, 11, 12]}', widgets: [
|
|
{id: 9, type: 'feed', name: 'Widget9', source: {id: 1}, limit: 5},
|
|
{id: 10, type: 'feed', name: 'Widget10', source: {id: 2}, limit: 5},
|
|
{id: 11, type: 'feed', name: 'Widget11', source: {id: 3}, limit: 5},
|
|
{id: 12, type: 'feed', name: 'Widget12', source: {id: 4}, limit: 5}
|
|
]}
|
|
])
|
|
|
|
//payload = {name}
|
|
export const createDashboard = createApi('POST', base)
|
|
|
|
//payload = dashboard widget
|
|
export const createDashboardWidget = createApi('POST', `${base}/{dashboardId}/widgets`, {
|
|
urlData: (payload, dashboardId) => ({dashboardId})
|
|
})
|
|
|
|
export const getVideoWidgetUrl = createApi('GET', `${base}/{dashboardId}/widgets/{widgetId}/video`, {
|
|
urlData: (payload, dashboardId, widgetId) => ({dashboardId, widgetId})
|
|
})
|
|
|
|
//payload = dashboard without widgets
|
|
export const updateDashboard = createApi('PUT', `${base}/{dashboardId}`, {
|
|
urlData: (payload, dashboardId) => ({dashboardId})
|
|
})
|
|
|
|
//payload = dashboard widget
|
|
export const updateDashboardWidget = createApi('PUT', `${base}/{dashboardId}/widgets/{widgetId}`, {
|
|
urlData: (payload, dashboardId, widgetId) => ({dashboardId, widgetId})
|
|
})
|
|
|
|
export const deleteDashboardWidget = createApi('DELETE', `${base}/{dashboardId}`)
|
|
|
|
export const deleteDashboard = createApi('DELETE', `${base}/{dashboardId}`)
|