UNPKG

express-passkit-webservice

Version:

Express.js integration for Apple Wallet web services

43 lines 1.75 kB
import { json, Router } from "express"; 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"); } const router = Router({ caseSensitive: true }); router.use(json()); router.get(ListEndpoint.path, async (request, response) => { const { deviceLibraryIdentifier, passTypeIdentifier } = request.params; const filters = { passesUpdatedSince: undefined, }; if (request.query.passesUpdatedSince) { filters.passesUpdatedSince = request.query.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)); }); return router; } //# sourceMappingURL=list.js.map