Files
socialhose-php/frontend/app/api/dashboardApi.js
2022-12-09 08:36:26 -06:00

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}`)