refactor(api): ♻️ Simplify route schema definitions

This commit is contained in:
Jesse Wierzbinski 2024-12-30 20:26:56 +01:00
parent 4926d6ff5d
commit 16f302c2dc
No known key found for this signature in database
74 changed files with 175 additions and 254 deletions

View file

@ -10,7 +10,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { config } from "~/packages/config-manager";
export const schemas = {
const schemas = {
form: z.object({
identifier: z
.string()

View file

@ -6,7 +6,7 @@ import { and, eq } from "drizzle-orm";
import { z } from "zod";
import { config } from "~/packages/config-manager";
export const schemas = {
const schemas = {
query: z.object({
redirect_uri: z.string().url(),
client_id: z.string(),

View file

@ -7,7 +7,7 @@ import type { Context } from "hono";
import { z } from "zod";
import { config } from "~/packages/config-manager";
export const schemas = {
const schemas = {
form: z.object({
token: z.string().min(1),
password: z.string().min(3).max(100),

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "post",
path: "/api/v1/accounts/{id}/block",
@ -46,7 +40,9 @@ const route = createRoute({
},
},
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
});

View file

@ -7,7 +7,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
id: z.string().uuid(),
}),

View file

@ -1,4 +1,4 @@
import { apiRoute, auth, idValidator } from "@/api";
import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Timeline, User } from "@versia/kit/db";
import { RolePermissions, Users } from "@versia/kit/tables";
@ -7,11 +7,11 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
query: z.object({
max_id: z.string().regex(idValidator).optional(),
since_id: z.string().regex(idValidator).optional(),
min_id: z.string().regex(idValidator).optional(),
max_id: z.string().uuid().optional(),
since_id: z.string().uuid().optional(),
min_id: z.string().uuid().optional(),
limit: z.coerce.number().int().min(1).max(40).optional().default(20),
}),
param: z.object({

View file

@ -1,4 +1,4 @@
import { apiRoute, auth, idValidator } from "@/api";
import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Timeline, User } from "@versia/kit/db";
import { RolePermissions, Users } from "@versia/kit/tables";
@ -7,11 +7,11 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
query: z.object({
max_id: z.string().regex(idValidator).optional(),
since_id: z.string().regex(idValidator).optional(),
min_id: z.string().regex(idValidator).optional(),
max_id: z.string().uuid().optional(),
since_id: z.string().uuid().optional(),
min_id: z.string().uuid().optional(),
limit: z.coerce.number().int().min(1).max(40).optional().default(20),
}),
param: z.object({

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "get",
path: "/api/v1/accounts/{id}",
@ -24,7 +18,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -6,7 +6,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
id: z.string().uuid(),
}),

View file

@ -6,7 +6,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
id: z.string().uuid(),
}),

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "post",
path: "/api/v1/accounts/{id}/pin",
@ -28,7 +22,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "post",
path: "/api/v1/accounts/{id}/refetch",
@ -25,7 +19,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "post",
path: "/api/v1/accounts/{id}/remove_from_followers",
@ -28,7 +22,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -6,7 +6,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
id: z.string().uuid(),
role_id: z.string().uuid(),

View file

@ -5,12 +5,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "get",
path: "/api/v1/accounts/{id}/roles",
@ -21,7 +15,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -1,4 +1,4 @@
import { apiRoute, auth, idValidator } from "@/api";
import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Note, Timeline, User } from "@versia/kit/db";
import { Notes, RolePermissions } from "@versia/kit/tables";
@ -7,14 +7,14 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
id: z.string().uuid(),
}),
query: z.object({
max_id: z.string().regex(idValidator).optional(),
since_id: z.string().regex(idValidator).optional(),
min_id: z.string().regex(idValidator).optional(),
max_id: z.string().uuid().optional(),
since_id: z.string().uuid().optional(),
min_id: z.string().uuid().optional(),
limit: z.coerce.number().int().min(1).max(40).optional().default(20),
only_media: z
.string()

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "post",
path: "/api/v1/accounts/{id}/unblock",
@ -28,7 +22,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "post",
path: "/api/v1/accounts/{id}/unfollow",
@ -28,7 +22,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "post",
path: "/api/v1/accounts/{id}/unmute",
@ -28,7 +22,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "post",
path: "/api/v1/accounts/{id}/unpin",
@ -28,7 +22,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -5,7 +5,7 @@ import { RolePermissions, type Users } from "@versia/kit/tables";
import { type InferSelectModel, sql } from "drizzle-orm";
import { z } from "zod";
export const schemas = {
const schemas = {
query: z.object({
id: z
.array(z.string().uuid())

View file

@ -7,7 +7,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
query: z.object({
username: z.string().min(1).max(512).toLowerCase(),
}),

View file

@ -9,7 +9,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { config } from "~/packages/config-manager";
export const schemas = {
const schemas = {
json: z.object({
username: z.string(),
email: z.string().toLowerCase(),

View file

@ -8,7 +8,7 @@ import { ApiError } from "~/classes/errors/api-error";
import { config } from "~/packages/config-manager";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
query: z.object({
acct: z.string().min(1).max(512).toLowerCase(),
}),

View file

@ -4,7 +4,7 @@ import { Relationship } from "@versia/kit/db";
import { RolePermissions } from "@versia/kit/tables";
import { z } from "zod";
export const schemas = {
const schemas = {
query: z.object({
id: z.array(z.string().uuid()).min(1).max(10).or(z.string().uuid()),
}),

View file

@ -7,7 +7,7 @@ import stringComparison from "string-comparison";
import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
export const schemas = {
const schemas = {
query: z.object({
q: z.string().min(1).max(512).regex(userAddressValidator),
limit: z.coerce.number().int().min(1).max(80).default(40),

View file

@ -14,7 +14,7 @@ import { MediaManager } from "~/classes/media/media-manager";
import { config } from "~/packages/config-manager/index.ts";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
json: z.object({
display_name: z
.string()

View file

@ -4,7 +4,7 @@ import { createRoute } from "@hono/zod-openapi";
import { Application } from "@versia/kit/db";
import { z } from "zod";
export const schemas = {
const schemas = {
json: z.object({
client_name: z.string().trim().min(1).max(100),
redirect_uris: z

View file

@ -1,15 +1,15 @@
import { apiRoute, auth, idValidator } from "@/api";
import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Timeline, User } from "@versia/kit/db";
import { RolePermissions, Users } from "@versia/kit/tables";
import { and, gt, gte, lt, sql } from "drizzle-orm";
import { z } from "zod";
export const schemas = {
const schemas = {
query: z.object({
max_id: z.string().regex(idValidator).optional(),
since_id: z.string().regex(idValidator).optional(),
min_id: z.string().regex(idValidator).optional(),
max_id: z.string().uuid().optional(),
since_id: z.string().uuid().optional(),
min_id: z.string().uuid().optional(),
limit: z.coerce.number().int().min(1).max(80).default(40),
}),
};

View file

@ -10,7 +10,7 @@ import { MediaManager } from "~/classes/media/media-manager";
import { config } from "~/packages/config-manager";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
id: z.string().uuid(),
}),

View file

@ -10,7 +10,7 @@ import { MediaManager } from "~/classes/media/media-manager";
import { config } from "~/packages/config-manager";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
json: z.object({
shortcode: z
.string()

View file

@ -1,15 +1,15 @@
import { apiRoute, auth, idValidator } from "@/api";
import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Note, Timeline } from "@versia/kit/db";
import { Notes, RolePermissions } from "@versia/kit/tables";
import { and, gt, gte, lt, sql } from "drizzle-orm";
import { z } from "zod";
export const schemas = {
const schemas = {
query: z.object({
max_id: z.string().regex(idValidator).optional(),
since_id: z.string().regex(idValidator).optional(),
min_id: z.string().regex(idValidator).optional(),
max_id: z.string().uuid().optional(),
since_id: z.string().uuid().optional(),
min_id: z.string().uuid().optional(),
limit: z.coerce.number().int().min(1).max(80).default(40),
}),
};

View file

@ -6,7 +6,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
account_id: z.string().uuid(),
}),

View file

@ -6,7 +6,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
account_id: z.string().uuid(),
}),

View file

@ -1,15 +1,15 @@
import { apiRoute, auth, idValidator } from "@/api";
import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Timeline, User } from "@versia/kit/db";
import { RolePermissions, Users } from "@versia/kit/tables";
import { and, gt, gte, lt, sql } from "drizzle-orm";
import { z } from "zod";
export const schemas = {
const schemas = {
query: z.object({
max_id: z.string().regex(idValidator).optional(),
since_id: z.string().regex(idValidator).optional(),
min_id: z.string().regex(idValidator).optional(),
max_id: z.string().uuid().optional(),
since_id: z.string().uuid().optional(),
min_id: z.string().uuid().optional(),
limit: z.coerce.number().int().min(1).max(80).default(40),
}),
};

View file

@ -1,4 +1,4 @@
import { apiRoute, auth, idValidator } from "@/api";
import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import type { Marker as ApiMarker } from "@versia/client/types";
import { db } from "@versia/kit/db";
@ -6,11 +6,11 @@ import { Markers, RolePermissions } from "@versia/kit/tables";
import { type SQL, and, eq } from "drizzle-orm";
import { z } from "zod";
export const schemas = {
const schemas = {
markers: z.object({
home: z
.object({
last_read_id: z.string().regex(idValidator),
last_read_id: z.string().uuid(),
version: z.number(),
updated_at: z.string(),
})
@ -18,7 +18,7 @@ export const schemas = {
.optional(),
notifications: z
.object({
last_read_id: z.string().regex(idValidator),
last_read_id: z.string().uuid(),
version: z.number(),
updated_at: z.string(),
})
@ -70,11 +70,8 @@ const routePost = createRoute({
] as const,
request: {
query: z.object({
"home[last_read_id]": z.string().regex(idValidator).optional(),
"notifications[last_read_id]": z
.string()
.regex(idValidator)
.optional(),
"home[last_read_id]": z.string().uuid().optional(),
"notifications[last_read_id]": z.string().uuid().optional(),
}),
},
responses: {

View file

@ -8,7 +8,7 @@ import { MediaManager } from "~/classes/media/media-manager";
import { config } from "~/packages/config-manager/index.ts";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
id: z.string().uuid(),
}),

View file

@ -9,7 +9,7 @@ import { MediaManager } from "~/classes/media/media-manager";
import { config } from "~/packages/config-manager/index.ts";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
form: z.object({
file: z.instanceof(File),
thumbnail: z.instanceof(File).optional(),

View file

@ -1,15 +1,15 @@
import { apiRoute, auth, idValidator } from "@/api";
import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Timeline, User } from "@versia/kit/db";
import { RolePermissions, Users } from "@versia/kit/tables";
import { and, gt, gte, lt, sql } from "drizzle-orm";
import { z } from "zod";
export const schemas = {
const schemas = {
query: z.object({
max_id: z.string().regex(idValidator).optional(),
since_id: z.string().regex(idValidator).optional(),
min_id: z.string().regex(idValidator).optional(),
max_id: z.string().uuid().optional(),
since_id: z.string().uuid().optional(),
min_id: z.string().uuid().optional(),
limit: z.coerce.number().int().min(1).max(80).default(40),
}),
};

View file

@ -5,12 +5,6 @@ import { RolePermissions } from "@versia/kit/tables";
import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "post",
path: "/api/v1/notifications/{id}/dismiss",
@ -23,7 +17,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "get",
path: "/api/v1/notifications/{id}",
@ -24,7 +18,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -3,7 +3,7 @@ import { createRoute } from "@hono/zod-openapi";
import { RolePermissions } from "@versia/kit/tables";
import { z } from "zod";
export const schemas = {
const schemas = {
query: z.object({
"ids[]": z.array(z.string().uuid()),
}),

View file

@ -1,16 +1,16 @@
import { apiRoute, auth, idValidator } from "@/api";
import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Notification, Timeline } from "@versia/kit/db";
import { Notifications, RolePermissions } from "@versia/kit/tables";
import { and, eq, gt, gte, inArray, lt, not, sql } from "drizzle-orm";
import { z } from "zod";
export const schemas = {
const schemas = {
query: z
.object({
max_id: z.string().regex(idValidator).optional(),
since_id: z.string().regex(idValidator).optional(),
min_id: z.string().regex(idValidator).optional(),
max_id: z.string().uuid().optional(),
since_id: z.string().uuid().optional(),
min_id: z.string().uuid().optional(),
limit: z.coerce.number().int().min(1).max(80).default(15),
exclude_types: z
.enum([
@ -62,7 +62,7 @@ export const schemas = {
])
.array()
.optional(),
account_id: z.string().regex(idValidator).optional(),
account_id: z.string().uuid().optional(),
})
.refine((val) => {
// Can't use both exclude_types and types

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const routeGet = createRoute({
method: "get",
path: "/api/v1/roles/{id}",
@ -22,7 +16,9 @@ const routeGet = createRoute({
}),
],
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {
@ -56,7 +52,9 @@ const routePatch = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
body: {
content: {
"application/json": {
@ -100,7 +98,9 @@ const routeDelete = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
204: {

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "get",
path: "/api/v1/statuses/{id}/context",
@ -23,7 +17,9 @@ const route = createRoute({
] as const,
summary: "Get status context",
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "post",
path: "/api/v1/statuses/{id}/favourite",
@ -26,7 +20,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -1,4 +1,4 @@
import { apiRoute, auth, idValidator } from "@/api";
import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Note, Timeline, User } from "@versia/kit/db";
import { RolePermissions, Users } from "@versia/kit/tables";
@ -7,11 +7,11 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
query: z.object({
max_id: z.string().regex(idValidator).optional(),
since_id: z.string().regex(idValidator).optional(),
min_id: z.string().regex(idValidator).optional(),
max_id: z.string().uuid().optional(),
since_id: z.string().uuid().optional(),
min_id: z.string().uuid().optional(),
limit: z.coerce.number().int().min(1).max(80).default(40),
}),
param: z.object({

View file

@ -1,4 +1,4 @@
import { apiRoute, auth, idValidator, jsonOrForm } from "@/api";
import { apiRoute, auth, jsonOrForm } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Attachment, Note } from "@versia/kit/db";
import { RolePermissions } from "@versia/kit/tables";
@ -8,9 +8,9 @@ import { ApiError } from "~/classes/errors/api-error";
import { config } from "~/packages/config-manager/index.ts";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
id: z.string().regex(idValidator),
id: z.string().uuid(),
}),
json: z
.object({
@ -27,7 +27,7 @@ export const schemas = {
.optional(),
content_type: z.string().optional().default("text/plain"),
media_ids: z
.array(z.string().regex(idValidator))
.array(z.string().uuid())
.max(config.validation.max_media_attachments)
.default([]),
spoiler_text: z.string().max(255).optional(),

View file

@ -1,4 +1,4 @@
import { apiRoute, auth, idValidator } from "@/api";
import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Note, db } from "@versia/kit/db";
import { RolePermissions } from "@versia/kit/tables";
@ -7,9 +7,9 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
id: z.string().regex(idValidator),
id: z.string().uuid(),
}),
};

View file

@ -7,7 +7,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
id: z.string().uuid(),
}),

View file

@ -7,7 +7,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
id: z.string().uuid(),
}),

View file

@ -7,12 +7,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "get",
path: "/api/v1/statuses/{id}/source",
@ -27,7 +21,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "post",
path: "/api/v1/statuses/{id}/unfavourite",
@ -26,7 +20,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -6,12 +6,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "post",
path: "/api/v1/statuses/{id}/unpin",
@ -26,7 +20,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -7,12 +7,6 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "post",
path: "/api/v1/statuses/{id}/unreblog",
@ -27,7 +21,9 @@ const route = createRoute({
}),
] as const,
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -8,7 +8,7 @@ import { ApiError } from "~/classes/errors/api-error";
import { config } from "~/packages/config-manager/index.ts";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
json: z
.object({
status: z

View file

@ -1,15 +1,15 @@
import { apiRoute, auth, idValidator } from "@/api";
import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Note, Timeline } from "@versia/kit/db";
import { Notes, RolePermissions } from "@versia/kit/tables";
import { and, eq, gt, gte, inArray, lt, or, sql } from "drizzle-orm";
import { z } from "zod";
export const schemas = {
const schemas = {
query: z.object({
max_id: z.string().regex(idValidator).optional(),
since_id: z.string().regex(idValidator).optional(),
min_id: z.string().regex(idValidator).optional(),
max_id: z.string().uuid().optional(),
since_id: z.string().uuid().optional(),
min_id: z.string().uuid().optional(),
limit: z.coerce.number().int().min(1).max(80).default(20),
}),
};

View file

@ -1,15 +1,15 @@
import { apiRoute, auth, idValidator } from "@/api";
import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Note, Timeline } from "@versia/kit/db";
import { Notes, RolePermissions } from "@versia/kit/tables";
import { and, eq, gt, gte, inArray, lt, or, sql } from "drizzle-orm";
import { z } from "zod";
export const schemas = {
const schemas = {
query: z.object({
max_id: z.string().regex(idValidator).optional(),
since_id: z.string().regex(idValidator).optional(),
min_id: z.string().regex(idValidator).optional(),
max_id: z.string().uuid().optional(),
since_id: z.string().uuid().optional(),
min_id: z.string().uuid().optional(),
limit: z.coerce.number().int().min(1).max(80).default(20),
local: z
.string()

View file

@ -7,7 +7,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
id: z.string().uuid(),
}),

View file

@ -5,7 +5,7 @@ import { FilterKeywords, Filters, RolePermissions } from "@versia/kit/tables";
import type { SQL } from "drizzle-orm";
import { z } from "zod";
export const schemas = {
const schemas = {
json: z.object({
title: z.string().trim().min(1).max(100),
context: z

View file

@ -9,7 +9,7 @@ import { MediaManager } from "~/classes/media/media-manager";
import { config } from "~/packages/config-manager/index.ts";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
form: z.object({
file: z.instanceof(File),
thumbnail: z.instanceof(File).optional(),

View file

@ -9,7 +9,7 @@ import { searchManager } from "~/classes/search/search-manager";
import { config } from "~/packages/config-manager";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
query: z.object({
q: z.string().trim(),
type: z.string().optional(),

View file

@ -4,7 +4,7 @@ import type { Entity } from "@versia/federation/types";
import { z } from "zod";
import { InboxJobType, inboxQueue } from "~/classes/queues/inbox";
export const schemas = {
const schemas = {
header: z.object({
"x-signature": z.string().optional(),
"x-nonce": z.string().optional(),

View file

@ -4,7 +4,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
hash: z.string(),
name: z.string(),

View file

@ -6,7 +6,7 @@ import { ApiError } from "~/classes/errors/api-error";
import { config } from "~/packages/config-manager";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
id: z
.string()

View file

@ -12,18 +12,14 @@ import { ApiError } from "~/classes/errors/api-error";
import { config } from "~/packages/config-manager";
import { ErrorSchema, type KnownEntity } from "~/types/api";
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
const route = createRoute({
method: "get",
path: "/objects/{id}",
summary: "Get object",
request: {
params: schemas.param,
params: z.object({
id: z.string().uuid(),
}),
},
responses: {
200: {

View file

@ -5,7 +5,7 @@ import { z } from "zod";
import { InboxJobType, inboxQueue } from "~/classes/queues/inbox";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
uuid: z.string().uuid(),
}),

View file

@ -6,7 +6,7 @@ import { z } from "zod";
import { ApiError } from "~/classes/errors/api-error";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
uuid: z.string().uuid(),
}),

View file

@ -12,7 +12,7 @@ import { ApiError } from "~/classes/errors/api-error";
import { config } from "~/packages/config-manager";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
param: z.object({
uuid: z.string().uuid(),
}),

View file

@ -16,7 +16,7 @@ import { ApiError } from "~/classes/errors/api-error";
import { config } from "~/packages/config-manager";
import { ErrorSchema } from "~/types/api";
export const schemas = {
const schemas = {
query: z.object({
resource: z
.string()

View file

@ -10,7 +10,7 @@ import { ApiError } from "~/classes/errors/api-error.ts";
import type { PluginType } from "../../index.ts";
import { automaticOidcFlow } from "../../utils.ts";
export const schemas = {
const schemas = {
query: z.object({
client_id: z.string().optional(),
flow: z.string(),

View file

@ -5,7 +5,7 @@ import { and, eq } from "@versia/kit/drizzle";
import { Tokens } from "@versia/kit/tables";
import type { PluginType } from "../../index.ts";
export const schemas = {
const schemas = {
json: z.object({
client_id: z.string(),
client_secret: z.string(),

View file

@ -10,7 +10,7 @@ import {
import type { PluginType } from "../../index.ts";
import { oauthRedirectUri } from "../../utils.ts";
export const schemas = {
const schemas = {
query: z.object({
issuer: z.string(),
client_id: z.string().optional(),

View file

@ -5,7 +5,7 @@ import { and, eq } from "@versia/kit/drizzle";
import { Tokens } from "@versia/kit/tables";
import type { PluginType } from "../../index.ts";
export const schemas = {
const schemas = {
json: z.object({
code: z.string().optional(),
code_verifier: z.string().optional(),