53 lines
1 KiB
JavaScript
53 lines
1 KiB
JavaScript
|
import Schedule from './model'
|
||
|
|
||
|
export async function all(ctx) {
|
||
|
let data = await Schedule.getAll({ }, ['graphic'], 'sort')
|
||
|
|
||
|
ctx.io.emit('schedule.all', data.toJSON())
|
||
|
total(ctx)
|
||
|
}
|
||
|
|
||
|
export async function total(ctx) {
|
||
|
let data = await Schedule.getAll({ }, ['graphic'], 'sort')
|
||
|
|
||
|
ctx.io.emit('schedule.total', { total: data.length })
|
||
|
}
|
||
|
|
||
|
export async function add(ctx, payload) {
|
||
|
payload.is_deleted = false
|
||
|
payload.sort = 1
|
||
|
|
||
|
let last = await Schedule.query(q => {
|
||
|
q.orderBy('sort', 'desc')
|
||
|
q.limit(1)
|
||
|
}).fetch({ require: false })
|
||
|
|
||
|
if (last) {
|
||
|
payload.sort = last.get('sort') + 1
|
||
|
}
|
||
|
|
||
|
await Schedule.create(payload)
|
||
|
|
||
|
await all(ctx)
|
||
|
}
|
||
|
|
||
|
export async function patch(ctx, payload) {
|
||
|
await Promise.all(payload.map(async item => {
|
||
|
let scheduleItem = await Schedule.getSingle(item.id)
|
||
|
|
||
|
scheduleItem.set({ sort: item.sort })
|
||
|
|
||
|
await scheduleItem.save()
|
||
|
}))
|
||
|
|
||
|
await all(ctx)
|
||
|
}
|
||
|
|
||
|
export async function remove(ctx, payload) {
|
||
|
let scheduleItem = await Schedule.getSingle(payload.id)
|
||
|
|
||
|
await scheduleItem.destroy()
|
||
|
|
||
|
await all(ctx)
|
||
|
}
|