100 lines
2.1 KiB
JavaScript
100 lines
2.1 KiB
JavaScript
|
|
import {
|
|
Router
|
|
} from "express";
|
|
|
|
import {
|
|
Medium as MediaTable
|
|
} from "../sequelize/media.model.mjs";
|
|
|
|
import {
|
|
Template as LabelTable
|
|
} from "../sequelize/template.model.mjs";
|
|
|
|
|
|
export var Routes = Router();
|
|
|
|
|
|
Routes.get('/media', async function (Request, Response)
|
|
{
|
|
let MediaList = await MediaTable.findAll();
|
|
|
|
MediaList.sort(function (a, b) {
|
|
if (a.name < b.name) return -1;
|
|
if (a.name > b.name) return 1;
|
|
return 0;
|
|
});
|
|
|
|
Response.send(MediaList);
|
|
})
|
|
|
|
|
|
Routes.get('/medium/:MediumID', async function (Request, Response)
|
|
{
|
|
Response.send(await MediaTable.findByPk(Request.params.MediumID));
|
|
})
|
|
|
|
|
|
Routes.post('/medium', async function (Request, Response)
|
|
{
|
|
let NewMedium = await MediaTable.create({
|
|
name: Request.body.name,
|
|
columns: Request.body.columns,
|
|
spacing: Request.body.spacing,
|
|
width: Request.body.width
|
|
});
|
|
|
|
Response.status(200);
|
|
Response.send(NewMedium);
|
|
})
|
|
|
|
|
|
Routes.put('/medium', async function (Request, Response)
|
|
{
|
|
let Medium = await MediaTable.findByPk(Request.body.mediumId);
|
|
|
|
await Medium.update({
|
|
name: Request.body.name,
|
|
columns: Request.body.columns,
|
|
spacing: Request.body.spacing,
|
|
width: Request.body.width
|
|
});
|
|
|
|
Response.status(200);
|
|
Response.send(Medium);
|
|
})
|
|
|
|
|
|
Routes.delete('/medium', async function (Request, Response)
|
|
{
|
|
let Medium = await MediaTable.findByPk(Request.body.mediumId);
|
|
|
|
await Medium.destroy();
|
|
|
|
Response.status(200);
|
|
Response.end();
|
|
})
|
|
|
|
|
|
Routes.put('/medium/label', async function (Request, Response)
|
|
{
|
|
let Medium = await MediaTable.findByPk(Request.body.mediumId);
|
|
let Label = await LabelTable.findByPk(Request.body.labelId);
|
|
|
|
await Medium.addLabel(Label);
|
|
|
|
Response.status(200);
|
|
Response.end();
|
|
})
|
|
|
|
|
|
Routes.delete('/medium/label', async function (Request, Response)
|
|
{
|
|
let Medium = await MediaTable.findByPk(Request.body.mediumId);
|
|
let Label = await LabelTable.findByPk(Request.body.labelId);
|
|
|
|
await Medium.removeLabel(Label);
|
|
|
|
Response.status(200);
|
|
Response.end();
|
|
})
|