diff --git a/src/controllers/PrinterController.ts b/src/controllers/PrinterController.ts index dc3a9c8..a6f9d46 100644 --- a/src/controllers/PrinterController.ts +++ b/src/controllers/PrinterController.ts @@ -4,12 +4,24 @@ import { hasRolesMiddleware } from '../middlewares/hasRolesMiddleware.js' import { prisma } from '../prisma.js' import { distributedCopy } from '../utils/distributedCopy.js' +import { PrinterStatusService } from '../services/PrinterStatusService.js' const router = Router() class PrinterController { static async index(req: Request, res: Response) { - const { campus } = req.query + const { campus, force } = req.query + + if (force) { + const printers = await prisma.printer.findMany() + console.log(`Updating printers status ${new Date().toLocaleString()}`) + + Promise.allSettled( + printers.map(async printer => { + new PrinterStatusService(printer) + }) + ) + } if (campus == 'RT') { const printers = await prisma.printer.findMany({ diff --git a/web/src/layouts/default/View.vue b/web/src/layouts/default/View.vue index faef8ac..ecf2852 100644 --- a/web/src/layouts/default/View.vue +++ b/web/src/layouts/default/View.vue @@ -40,7 +40,7 @@ class="mr-1" color="primary" title="Atualizar" - @click="appStore.fetchPrinters" + @click="appStore.fetchPrinters(true)" :disabled="appStore.loadingPrinters" > diff --git a/web/src/store/appStore.ts b/web/src/store/appStore.ts index 993ac25..cbf7f52 100644 --- a/web/src/store/appStore.ts +++ b/web/src/store/appStore.ts @@ -14,12 +14,13 @@ export const useAppStore = defineStore('app', { }), actions: { - async fetchPrinters() { + async fetchPrinters(force = false) { this.loadingPrinters = true try { this.printers = await api( `printer?${new URLSearchParams({ - campus: this.selectedCampus + campus: this.selectedCampus, + force: force ? 'true' : '' })}`, { method: 'GET' } )