UNPKG

adonis-passkit-webservice

Version:
43 lines 1.86 kB
import router from "@adonisjs/core/services/router"; import { ListEndpoint } from "passkit-webservice-toolkit/v1/list.js"; import { HandlerNotFoundError } from "../../HandlerNotFoundError.js"; export default function ListRouter(opts) { if (typeof (opts === null || opts === void 0 ? void 0 : opts.onListRetrieve) !== "function") { throw new HandlerNotFoundError("onListRetrieve", "ListPlugin"); } return () => { router.get(ListEndpoint.path, async ({ request, response, params }) => { const { deviceLibraryIdentifier, passTypeIdentifier } = params; const filters = { passesUpdatedSince: undefined, }; const queryString = request.qs(); if (queryString.passesUpdatedSince) { filters.passesUpdatedSince = queryString.passesUpdatedSince; } const retrieve = await opts.onListRetrieve(deviceLibraryIdentifier, passTypeIdentifier, filters); if (!retrieve) { response.status(204).send({}); return; } if (!("serialNumbers" in retrieve) || !Array.isArray(retrieve["serialNumbers"])) { response .status(500) .send("'serialNumbers' property is missing in 'onListRetrieve' response or is not an array."); return; } if (!("lastUpdated" in retrieve)) { response .status(500) .send("'lastUpdated' property is missing in 'onListRetrieve' response."); return; } response .header("Content-Type", "application/json") .status(200) .send(JSON.stringify(retrieve)); }); }; } //# sourceMappingURL=list.js.map