feat: add searchByAddress route
This commit is contained in:
@@ -6,6 +6,7 @@ import {
|
|||||||
getPermit,
|
getPermit,
|
||||||
listPermits,
|
listPermits,
|
||||||
searchPermit,
|
searchPermit,
|
||||||
|
searchPermitByAddress,
|
||||||
updatePermit,
|
updatePermit,
|
||||||
} from "./permit.service";
|
} from "./permit.service";
|
||||||
import { PageQueryParams } from "../pagination";
|
import { PageQueryParams } from "../pagination";
|
||||||
@@ -102,3 +103,17 @@ export async function searchPermitHandler(
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function searchPermitByAddressHandler(
|
||||||
|
req: FastifyRequest,
|
||||||
|
res: FastifyReply
|
||||||
|
) {
|
||||||
|
const { address } = req.body as { address: string };
|
||||||
|
|
||||||
|
try {
|
||||||
|
const permitList = await searchPermitByAddress(address);
|
||||||
|
return res.code(200).send(permitList);
|
||||||
|
} catch (err) {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import {
|
|||||||
deletePermitHandler,
|
deletePermitHandler,
|
||||||
getPermitHandler,
|
getPermitHandler,
|
||||||
listPermitsHandler,
|
listPermitsHandler,
|
||||||
|
searchPermitByAddressHandler,
|
||||||
searchPermitHandler,
|
searchPermitHandler,
|
||||||
updatePermitHandler,
|
updatePermitHandler,
|
||||||
} from "./permit.controller";
|
} from "./permit.controller";
|
||||||
@@ -97,6 +98,22 @@ export async function permitRoutes(fastify: FastifyInstance) {
|
|||||||
searchPermitHandler
|
searchPermitHandler
|
||||||
);
|
);
|
||||||
|
|
||||||
|
fastify.post(
|
||||||
|
"/searchByAddress",
|
||||||
|
{
|
||||||
|
schema: {
|
||||||
|
body: {
|
||||||
|
type: "object",
|
||||||
|
properties: { address: { type: "string" } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
config: { requiredClaims: ["permit:read"] },
|
||||||
|
preHandler: [fastify.authorize],
|
||||||
|
},
|
||||||
|
searchPermitByAddressHandler
|
||||||
|
);
|
||||||
|
|
||||||
fastify.get(
|
fastify.get(
|
||||||
"/fields/:field",
|
"/fields/:field",
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -439,3 +439,9 @@ export async function searchPermit(
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function searchPermitByAddress(address: string) {
|
||||||
|
return await permitModel
|
||||||
|
.find({ $text: { $search: address } }, { score: { $meta: "textScore" } })
|
||||||
|
.sort({ score: { $meta: "textScore" } });
|
||||||
|
}
|
||||||
|
|||||||
@@ -167,7 +167,13 @@ export const rules: Record<
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
bot: {
|
bot: {
|
||||||
claims: ["file:download", "note:write", "rts:read", "rts:write"],
|
claims: [
|
||||||
|
"file:download",
|
||||||
|
"file:upload",
|
||||||
|
"note:write",
|
||||||
|
"rts:read",
|
||||||
|
"rts:write",
|
||||||
|
],
|
||||||
hiddenFields: {
|
hiddenFields: {
|
||||||
orgs: ["__v"],
|
orgs: ["__v"],
|
||||||
permits: ["__v"],
|
permits: ["__v"],
|
||||||
|
|||||||
Reference in New Issue
Block a user