Add permits module
This commit is contained in:
94
src/permit/permit.route.ts
Normal file
94
src/permit/permit.route.ts
Normal file
@@ -0,0 +1,94 @@
|
||||
import { FastifyInstance } from "fastify";
|
||||
import {
|
||||
createPermitHandler,
|
||||
deletePermitHandler,
|
||||
getPermitHandler,
|
||||
listPermitsHandler,
|
||||
updatePermitHandler,
|
||||
} from "./permit.controller";
|
||||
import { $permit } from "./permit.schema";
|
||||
|
||||
export async function permitRoutes(fastify: FastifyInstance) {
|
||||
fastify.post(
|
||||
"/",
|
||||
{
|
||||
schema: {
|
||||
body: $permit("createPermitInput"),
|
||||
response: {
|
||||
201: $permit("createPermitResponse"),
|
||||
},
|
||||
},
|
||||
config: { requiredClaims: ["permit:write"] },
|
||||
preHandler: [fastify.authorize],
|
||||
},
|
||||
createPermitHandler
|
||||
);
|
||||
|
||||
fastify.get(
|
||||
"/:permitId",
|
||||
{
|
||||
schema: {
|
||||
params: {
|
||||
type: "object",
|
||||
properties: {
|
||||
permitId: { type: "string" },
|
||||
},
|
||||
},
|
||||
response: {
|
||||
200: $permit("getPermitResponse"),
|
||||
},
|
||||
},
|
||||
config: { requiredClaims: ["permit:read"] },
|
||||
preHandler: [fastify.authorize],
|
||||
},
|
||||
getPermitHandler
|
||||
);
|
||||
|
||||
fastify.get(
|
||||
"/",
|
||||
{
|
||||
schema: {
|
||||
querystring: $permit("pageQueryParams"),
|
||||
response: {
|
||||
200: $permit("listPermitResponse"),
|
||||
},
|
||||
},
|
||||
|
||||
config: { requiredClaims: ["permit:read"] },
|
||||
preHandler: [fastify.authorize],
|
||||
},
|
||||
listPermitsHandler
|
||||
);
|
||||
|
||||
fastify.patch(
|
||||
"/:permitId",
|
||||
{
|
||||
schema: {
|
||||
params: {
|
||||
type: "object",
|
||||
properties: { permitId: { type: "string" } },
|
||||
},
|
||||
body: $permit("updatePermitInput"),
|
||||
response: {
|
||||
200: $permit("getPermitResponse"),
|
||||
},
|
||||
},
|
||||
},
|
||||
updatePermitHandler
|
||||
);
|
||||
|
||||
fastify.delete(
|
||||
"/:permitId",
|
||||
{
|
||||
schema: {
|
||||
params: {
|
||||
type: "object",
|
||||
properties: { permitId: { type: "string" } },
|
||||
},
|
||||
},
|
||||
config: { requiredClaims: ["permit:delete"] },
|
||||
preHandler: [fastify.authorize],
|
||||
},
|
||||
deletePermitHandler
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user