adonis-passkit-webservice
Version:
AdonisJS integration for Apple Wallet web services
36 lines • 1.88 kB
JavaScript
import router from "@adonisjs/core/services/router";
import { RegisterEndpoint } from "passkit-webservice-toolkit/v1/register.js";
import { UnregisterEndpoint } from "passkit-webservice-toolkit/v1/unregister.js";
import { HandlerNotFoundError } from "../../HandlerNotFoundError.js";
import { assertAuthorizationSchemeValidMiddleware, assertTokenValidMiddleware, } from "./hooks.js";
export default function RegistrationRouter(opts) {
if (typeof (opts === null || opts === void 0 ? void 0 : opts.onRegister) !== "function") {
throw new HandlerNotFoundError("onRegister", "RegistrationPlugin");
}
if (typeof opts.onUnregister !== "function") {
throw new HandlerNotFoundError("onUnregister", "RegistrationPlugin");
}
return () => {
router
.group(() => {
router.post(RegisterEndpoint.path, async (context) => {
const { deviceLibraryIdentifier, passTypeIdentifier, serialNumber } = context.params;
const { pushToken } = context.request.body();
const registrationSuccessful = Boolean(await opts.onRegister(deviceLibraryIdentifier, passTypeIdentifier, serialNumber, pushToken));
context.response
.status(200 + Number(registrationSuccessful))
.send({});
});
router.delete(UnregisterEndpoint.path, async (context) => {
const { deviceLibraryIdentifier, passTypeIdentifier, serialNumber } = context.params;
await opts.onUnregister(deviceLibraryIdentifier, passTypeIdentifier, serialNumber);
context.response.status(200).send({});
});
})
.use([
assertAuthorizationSchemeValidMiddleware,
assertTokenValidMiddleware(opts.tokenVerifier),
]);
};
}
//# sourceMappingURL=registration.js.map