UNPKG

hono-passkit-webservice

Version:

Hono.dev integration for Apple Wallet web services

30 lines 1.76 kB
import { Hono } from "hono"; import { RegisterEndpoint, } from "passkit-webservice-toolkit/v1/register.js"; import { UnregisterEndpoint } from "passkit-webservice-toolkit/v1/unregister.js"; import { HandlerNotFoundError } from "../../HandlerNotFoundError.js"; import { assertAuthorizationSchemeValid, assertTokenValid } from "./hooks.js"; export default function RegistrationRouter(opts) { if (typeof (opts === null || opts === void 0 ? void 0 : opts.onRegister) !== "function") { throw new HandlerNotFoundError("onRegister", "RegistrationRouter"); } if (typeof opts.onUnregister !== "function") { throw new HandlerNotFoundError("onUnregister", "RegistrationRouter"); } const router = new Hono(); router.post(RegisterEndpoint.path, assertAuthorizationSchemeValid, assertTokenValid(opts.tokenVerifier), async (context) => { const { deviceLibraryIdentifier, passTypeIdentifier, serialNumber } = context.req.param(); const { pushToken } = await context.req.json(); const registrationSuccessful = Boolean(await opts.onRegister(deviceLibraryIdentifier, passTypeIdentifier, serialNumber, pushToken)); const statusCode = (200 + Number(registrationSuccessful)); context.status(statusCode); return context.body(null); }); router.delete(UnregisterEndpoint.path, assertAuthorizationSchemeValid, assertTokenValid(opts.tokenVerifier), async (context) => { const { deviceLibraryIdentifier, passTypeIdentifier, serialNumber } = context.req.param(); await opts.onUnregister(deviceLibraryIdentifier, passTypeIdentifier, serialNumber); context.status(200); return context.body(null); }); return router; } //# sourceMappingURL=registration.js.map