You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
674 B
25 lines
674 B
2 years ago
|
import { NotFoundError } from "blitz";
|
||
|
import { resolver } from "@blitzjs/rpc";
|
||
|
import db from "db";
|
||
|
import { z } from "zod";
|
||
|
|
||
|
const GetSearchRequest = z.object({
|
||
|
// This accepts type of undefined, but is required at runtime
|
||
|
text: z.string()
|
||
|
});
|
||
|
|
||
|
export default resolver.pipe(
|
||
|
resolver.zod(GetSearchRequest),
|
||
|
async ({ text }) => {
|
||
|
if(!text){
|
||
|
return []
|
||
|
}
|
||
|
// TODO: in multi-tenant app, you must add validation to ensure correct tenant
|
||
|
const searchRequest = await db.searchRequest.findMany({ where:{text:{startsWith:text}},take:5,orderBy:[{count:'desc'}] })
|
||
|
|
||
|
// if (!searchRequest) throw new NotFoundError();
|
||
|
|
||
|
return searchRequest;
|
||
|
}
|
||
|
);
|