mirror of
https://github.com/versia-pub/server.git
synced 2026-03-13 05:49:16 +01:00
refactor(api): 🏷️ Port more misc endpoints to use new schemas
Some checks failed
Mirror to Codeberg / Mirror (push) Failing after 0s
Some checks failed
Mirror to Codeberg / Mirror (push) Failing after 0s
This commit is contained in:
parent
e3e285571e
commit
247a8fbce3
16 changed files with 462 additions and 351 deletions
39
utils/api.ts
39
utils/api.ts
|
|
@ -2,7 +2,7 @@ import type { OpenAPIHono } from "@hono/zod-openapi";
|
|||
import { z } from "@hono/zod-openapi";
|
||||
import { zValidator } from "@hono/zod-validator";
|
||||
import { getLogger } from "@logtape/logtape";
|
||||
import { Application, Note, Token, User, db } from "@versia/kit/db";
|
||||
import { Application, Emoji, Note, Token, User, db } from "@versia/kit/db";
|
||||
import { Challenges, type RolePermissions } from "@versia/kit/tables";
|
||||
import { extractParams, verifySolution } from "altcha-lib";
|
||||
import chalk from "chalk";
|
||||
|
|
@ -404,6 +404,43 @@ export const withUserParam = every(
|
|||
}
|
||||
>;
|
||||
|
||||
/**
|
||||
* Middleware to check if an emoji exists and is viewable by the user
|
||||
*
|
||||
* Useful in /api/v1/emojis/:id/* routes
|
||||
* @returns
|
||||
*/
|
||||
export const withEmojiParam = every(
|
||||
zValidator("param", z.object({ id: z.string().uuid() }), handleZodError),
|
||||
createMiddleware<
|
||||
HonoEnv & {
|
||||
Variables: {
|
||||
emoji: Emoji;
|
||||
};
|
||||
},
|
||||
string,
|
||||
WithIdParam
|
||||
>(async (context, next) => {
|
||||
const { id } = context.req.valid("param");
|
||||
|
||||
const emoji = await Emoji.fromId(id);
|
||||
|
||||
if (!emoji) {
|
||||
throw new ApiError(404, "Emoji not found");
|
||||
}
|
||||
|
||||
context.set("emoji", emoji);
|
||||
|
||||
await next();
|
||||
}),
|
||||
) as MiddlewareHandler<
|
||||
HonoEnv & {
|
||||
Variables: {
|
||||
emoji: Emoji;
|
||||
};
|
||||
}
|
||||
>;
|
||||
|
||||
// Helper function to parse form data
|
||||
async function parseFormData(context: Context): Promise<{
|
||||
parsed: ParsedQs;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue