label-print/routes/api.queue.mjs
2025-05-17 16:23:48 +02:00

92 lines
1.8 KiB
JavaScript

import {
Router
} from "express";
import {
Queue as QueueTable
} from "../sequelize/queue.model.mjs";
import {
Printer as PrinterTable
} from "../sequelize/printer.model.mjs";
export var Routes = Router();
Routes.get('/queues', async function (Request, Response)
{
let QueueList = await QueueTable.findAll();
QueueList.sort(function (a, b) {
if (a.name < b.name) return -1;
if (a.name > b.name) return 1;
return 0;
});
Response.status(200);
Response.send(QueueList);
})
Routes.get('/queue/:QueueID', async function (Request, Response)
{
let Queue = await QueueTable.findByPk(Request.params.QueueID);
Response.status(200);
Response.send(Queue);
})
Routes.post('/queue', async function (Request, Response)
{
let Queue = await QueueTable.create({
name: Request.body.name
});
await Queue.setPrinter(Request.body.printerId)
Response.status(200);
Response.send(Queue);
})
Routes.put('/queue', async function (Request, Response)
{
let Queue = await QueueTable.findByPk(Request.body.id);
await Queue.update({
name: Request.body.name
});
if (Request.body.printerId == "null") {
await Queue.setPrinter(null);
} else {
await Queue.setPrinter(Request.body.printerId)
}
Response.status(200);
Response.send(Queue);
})
Routes.delete('/queue/:QueueID', async function (Request, Response)
{
await (await QueueTable.findByPk(Request.params.QueueID)).destroy();
Response.status(200);
Response.end();
})
Routes.put('/queue/printer', async function (Request, Response)
{
let Queue = await QueueTable.findByPk(Request.params.queueId);
let Printer = await PrinterTable.findByPk(Request.params.printerId);
await Queue.setPrinter(Printer);
Response.status(200);
Response.end();
})