mirror of
https://github.com/versia-pub/server.git
synced 2026-03-13 05:49:16 +01:00
refactor(api): 🏷️ Begin porting all code over to new schemas
This commit is contained in:
parent
fda1167234
commit
bff1c5f734
32 changed files with 171 additions and 264 deletions
|
|
@ -2,6 +2,7 @@ import { apiRoute, auth, withUserParam } from "@/api";
|
|||
import { createRoute, z } from "@hono/zod-openapi";
|
||||
import { Relationship } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { Relationship as RelationshipSchema } from "~/classes/schemas/relationship";
|
||||
|
||||
const route = createRoute({
|
||||
method: "post",
|
||||
|
|
@ -24,7 +25,7 @@ const route = createRoute({
|
|||
description: "Updated relationship",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Relationship.schema,
|
||||
schema: RelationshipSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { createRoute, z } from "@hono/zod-openapi";
|
|||
import { Relationship } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { iso631 } from "~/classes/schemas/common";
|
||||
import { Relationship as RelationshipSchema } from "~/classes/schemas/relationship";
|
||||
|
||||
const schemas = {
|
||||
param: z.object({
|
||||
|
|
@ -39,7 +40,7 @@ const route = createRoute({
|
|||
description: "Updated relationship",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Relationship.schema,
|
||||
schema: RelationshipSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { apiRoute, auth, withUserParam } from "@/api";
|
|||
import { createRoute, z } from "@hono/zod-openapi";
|
||||
import { Relationship } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { Relationship as RelationshipSchema } from "~/classes/schemas/relationship";
|
||||
|
||||
const schemas = {
|
||||
param: z.object({
|
||||
|
|
@ -49,7 +50,7 @@ const route = createRoute({
|
|||
description: "Updated relationship",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Relationship.schema,
|
||||
schema: RelationshipSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { apiRoute, auth, withUserParam } from "@/api";
|
|||
import { createRoute, z } from "@hono/zod-openapi";
|
||||
import { Relationship } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { Relationship as RelationshipSchema } from "~/classes/schemas/relationship";
|
||||
|
||||
const schemas = {
|
||||
param: z.object({
|
||||
|
|
@ -43,7 +44,7 @@ const route = createRoute({
|
|||
description: "Updated relationship",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Relationship.schema,
|
||||
schema: RelationshipSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { apiRoute, auth, withUserParam } from "@/api";
|
|||
import { createRoute, z } from "@hono/zod-openapi";
|
||||
import { Relationship } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { Relationship as RelationshipSchema } from "~/classes/schemas/relationship";
|
||||
|
||||
const route = createRoute({
|
||||
method: "post",
|
||||
|
|
@ -29,7 +30,7 @@ const route = createRoute({
|
|||
description: "Updated relationship",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Relationship.schema,
|
||||
schema: RelationshipSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { apiRoute, auth, withUserParam } from "@/api";
|
|||
import { createRoute, z } from "@hono/zod-openapi";
|
||||
import { Relationship } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { Relationship as RelationshipSchema } from "~/classes/schemas/relationship";
|
||||
|
||||
const route = createRoute({
|
||||
method: "post",
|
||||
|
|
@ -29,7 +30,7 @@ const route = createRoute({
|
|||
description: "Updated relationship",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Relationship.schema,
|
||||
schema: RelationshipSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { apiRoute, auth, withUserParam } from "@/api";
|
|||
import { createRoute, z } from "@hono/zod-openapi";
|
||||
import { Relationship } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { Relationship as RelationshipSchema } from "~/classes/schemas/relationship";
|
||||
|
||||
const route = createRoute({
|
||||
method: "post",
|
||||
|
|
@ -29,7 +30,7 @@ const route = createRoute({
|
|||
description: "Updated relationship",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Relationship.schema,
|
||||
schema: RelationshipSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { apiRoute, auth, withUserParam } from "@/api";
|
|||
import { createRoute, z } from "@hono/zod-openapi";
|
||||
import { Relationship } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { Relationship as RelationshipSchema } from "~/classes/schemas/relationship";
|
||||
import { ErrorSchema } from "~/types/api";
|
||||
|
||||
const route = createRoute({
|
||||
|
|
@ -30,7 +31,7 @@ const route = createRoute({
|
|||
description: "Updated relationship",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Relationship.schema,
|
||||
schema: RelationshipSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { apiRoute, auth, withUserParam } from "@/api";
|
|||
import { createRoute, z } from "@hono/zod-openapi";
|
||||
import { Relationship } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { Relationship as RelationshipSchema } from "~/classes/schemas/relationship";
|
||||
|
||||
const route = createRoute({
|
||||
method: "post",
|
||||
|
|
@ -29,7 +30,7 @@ const route = createRoute({
|
|||
description: "Updated relationship",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Relationship.schema,
|
||||
schema: RelationshipSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { apiRoute, auth, withUserParam } from "@/api";
|
|||
import { createRoute, z } from "@hono/zod-openapi";
|
||||
import { Relationship } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { Relationship as RelationshipSchema } from "~/classes/schemas/relationship";
|
||||
|
||||
const route = createRoute({
|
||||
method: "post",
|
||||
|
|
@ -29,7 +30,7 @@ const route = createRoute({
|
|||
description: "Updated relationship",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Relationship.schema,
|
||||
schema: RelationshipSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { apiRoute, auth, qsQuery } from "@/api";
|
|||
import { createRoute, z } from "@hono/zod-openapi";
|
||||
import { Relationship } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { Relationship as RelationshipSchema } from "~/classes/schemas/relationship";
|
||||
|
||||
const schemas = {
|
||||
query: z.object({
|
||||
|
|
@ -30,7 +31,7 @@ const route = createRoute({
|
|||
description: "Relationships",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: z.array(Relationship.schema),
|
||||
schema: z.array(RelationshipSchema),
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -263,6 +263,7 @@ export default apiRoute((app) =>
|
|||
self.source.fields.push({
|
||||
name: field.name,
|
||||
value: field.value,
|
||||
verified_at: null,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { createRoute, z } from "@hono/zod-openapi";
|
|||
import { Relationship, User } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { ApiError } from "~/classes/errors/api-error";
|
||||
import { Relationship as RelationshipSchema } from "~/classes/schemas/relationship";
|
||||
import { ErrorSchema } from "~/types/api";
|
||||
|
||||
const schemas = {
|
||||
|
|
@ -29,7 +30,7 @@ const route = createRoute({
|
|||
description: "Relationship",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Relationship.schema,
|
||||
schema: RelationshipSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { createRoute, z } from "@hono/zod-openapi";
|
|||
import { Relationship, User } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { ApiError } from "~/classes/errors/api-error";
|
||||
import { Relationship as RelationshipSchema } from "~/classes/schemas/relationship";
|
||||
import { ErrorSchema } from "~/types/api";
|
||||
|
||||
const schemas = {
|
||||
|
|
@ -29,7 +30,7 @@ const route = createRoute({
|
|||
description: "Relationship",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Relationship.schema,
|
||||
schema: RelationshipSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { createRoute, z } from "@hono/zod-openapi";
|
|||
import { Media } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { ApiError } from "~/classes/errors/api-error";
|
||||
import { Attachment as AttachmentSchema } from "~/classes/schemas/attachment";
|
||||
import { config } from "~/packages/config-manager/index.ts";
|
||||
import { ErrorSchema } from "~/types/api";
|
||||
|
||||
|
|
@ -46,7 +47,7 @@ const routePut = createRoute({
|
|||
description: "Media updated",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Media.schema,
|
||||
schema: AttachmentSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
@ -80,7 +81,7 @@ const routeGet = createRoute({
|
|||
description: "Media",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Media.schema,
|
||||
schema: AttachmentSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { apiRoute, auth } from "@/api";
|
|||
import { createRoute, z } from "@hono/zod-openapi";
|
||||
import { Media } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { Attachment as AttachmentSchema } from "~/classes/schemas/attachment";
|
||||
import { config } from "~/packages/config-manager/index.ts";
|
||||
import { ErrorSchema } from "~/types/api";
|
||||
|
||||
|
|
@ -42,7 +43,7 @@ const route = createRoute({
|
|||
description: "Attachment",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Media.schema,
|
||||
schema: AttachmentSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { createRoute, z } from "@hono/zod-openapi";
|
|||
import { Notification } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { ApiError } from "~/classes/errors/api-error";
|
||||
import { Notification as NotificationSchema } from "~/classes/schemas/notification.ts";
|
||||
import { ErrorSchema } from "~/types/api";
|
||||
|
||||
const route = createRoute({
|
||||
|
|
@ -26,7 +27,7 @@ const route = createRoute({
|
|||
description: "Notification",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Notification.schema,
|
||||
schema: NotificationSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,72 +1,26 @@
|
|||
import { apiRoute, auth } from "@/api";
|
||||
import { createRoute, z } from "@hono/zod-openapi";
|
||||
import { Notification, Timeline } from "@versia/kit/db";
|
||||
import { 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 { Account as AccountSchema } from "~/classes/schemas/account";
|
||||
import { Notification as NotificationSchema } from "~/classes/schemas/notification.ts";
|
||||
|
||||
const schemas = {
|
||||
query: z
|
||||
.object({
|
||||
max_id: z.string().uuid().optional(),
|
||||
since_id: z.string().uuid().optional(),
|
||||
min_id: z.string().uuid().optional(),
|
||||
max_id: NotificationSchema.shape.id.optional(),
|
||||
since_id: NotificationSchema.shape.id.optional(),
|
||||
min_id: NotificationSchema.shape.id.optional(),
|
||||
limit: z.coerce.number().int().min(1).max(80).default(15),
|
||||
exclude_types: z
|
||||
.enum([
|
||||
"mention",
|
||||
"status",
|
||||
"follow",
|
||||
"follow_request",
|
||||
"reblog",
|
||||
"poll",
|
||||
"favourite",
|
||||
"update",
|
||||
"admin.sign_up",
|
||||
"admin.report",
|
||||
"chat",
|
||||
"pleroma:chat_mention",
|
||||
"pleroma:emoji_reaction",
|
||||
"pleroma:event_reminder",
|
||||
"pleroma:participation_request",
|
||||
"pleroma:participation_accepted",
|
||||
"move",
|
||||
"group_reblog",
|
||||
"group_favourite",
|
||||
"user_approved",
|
||||
])
|
||||
.array()
|
||||
.optional(),
|
||||
types: z
|
||||
.enum([
|
||||
"mention",
|
||||
"status",
|
||||
"follow",
|
||||
"follow_request",
|
||||
"reblog",
|
||||
"poll",
|
||||
"favourite",
|
||||
"update",
|
||||
"admin.sign_up",
|
||||
"admin.report",
|
||||
"chat",
|
||||
"pleroma:chat_mention",
|
||||
"pleroma:emoji_reaction",
|
||||
"pleroma:event_reminder",
|
||||
"pleroma:participation_request",
|
||||
"pleroma:participation_accepted",
|
||||
"move",
|
||||
"group_reblog",
|
||||
"group_favourite",
|
||||
"user_approved",
|
||||
])
|
||||
.array()
|
||||
.optional(),
|
||||
account_id: z.string().uuid().optional(),
|
||||
exclude_types: z.array(NotificationSchema.shape.type).optional(),
|
||||
types: z.array(NotificationSchema.shape.type).optional(),
|
||||
account_id: AccountSchema.shape.id.optional(),
|
||||
})
|
||||
.refine((val) => {
|
||||
// Can't use both exclude_types and types
|
||||
return !(val.exclude_types && val.types);
|
||||
}),
|
||||
}, "Can't use both exclude_types and types"),
|
||||
};
|
||||
|
||||
const route = createRoute({
|
||||
|
|
@ -90,7 +44,7 @@ const route = createRoute({
|
|||
description: "Notifications",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: z.array(Notification.schema),
|
||||
schema: z.array(NotificationSchema),
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { apiRoute, auth } from "@/api";
|
|||
import { createRoute } from "@hono/zod-openapi";
|
||||
import { PushSubscription } from "@versia/kit/db";
|
||||
import { ApiError } from "~/classes/errors/api-error";
|
||||
import { WebPushSubscription as WebPushSubscriptionSchema } from "~/classes/schemas/pushsubscription";
|
||||
import { RolePermissions } from "~/drizzle/schema";
|
||||
|
||||
export default apiRoute((app) =>
|
||||
|
|
@ -27,7 +28,7 @@ export default apiRoute((app) =>
|
|||
description: "WebPushSubscription",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: PushSubscription.schema,
|
||||
schema: WebPushSubscriptionSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { auth, jsonOrForm } from "@/api";
|
|||
import { createRoute } from "@hono/zod-openapi";
|
||||
import { PushSubscription } from "@versia/kit/db";
|
||||
import { WebPushSubscriptionInput } from "~/classes/schemas/pushsubscription";
|
||||
import { WebPushSubscription as WebPushSubscriptionSchema } from "~/classes/schemas/pushsubscription";
|
||||
import { RolePermissions } from "~/drizzle/schema";
|
||||
|
||||
export default apiRoute((app) =>
|
||||
|
|
@ -39,7 +40,7 @@ export default apiRoute((app) =>
|
|||
"A new PushSubscription has been generated, which will send the requested alerts to your endpoint.",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: PushSubscription.schema,
|
||||
schema: WebPushSubscriptionSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@ import { apiRoute, auth, jsonOrForm } from "@/api";
|
|||
import { createRoute } from "@hono/zod-openapi";
|
||||
import { PushSubscription } from "@versia/kit/db";
|
||||
import { ApiError } from "~/classes/errors/api-error";
|
||||
import { WebPushSubscriptionInput } from "~/classes/schemas/pushsubscription";
|
||||
import {
|
||||
WebPushSubscriptionInput,
|
||||
WebPushSubscription as WebPushSubscriptionSchema,
|
||||
} from "~/classes/schemas/pushsubscription";
|
||||
import { RolePermissions } from "~/drizzle/schema";
|
||||
|
||||
export default apiRoute((app) =>
|
||||
|
|
@ -41,7 +44,7 @@ export default apiRoute((app) =>
|
|||
description: "The WebPushSubscription has been updated.",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: PushSubscription.schema,
|
||||
schema: WebPushSubscriptionSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { apiRoute, auth } from "@/api";
|
|||
import { createRoute, z } from "@hono/zod-openapi";
|
||||
import { Media } from "@versia/kit/db";
|
||||
import { RolePermissions } from "@versia/kit/tables";
|
||||
import { Attachment as AttachmentSchema } from "~/classes/schemas/attachment";
|
||||
import { config } from "~/packages/config-manager/index.ts";
|
||||
import { ErrorSchema } from "~/types/api";
|
||||
|
||||
|
|
@ -42,7 +43,7 @@ const route = createRoute({
|
|||
description: "Uploaded media",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: Media.schema,
|
||||
schema: AttachmentSchema,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -132,9 +132,10 @@ export default apiRoute((app) =>
|
|||
},
|
||||
{
|
||||
rel: "avatar",
|
||||
// Default avatars are SVGs
|
||||
type:
|
||||
user.data.source.avatar?.content_type ||
|
||||
"application/octet-stream",
|
||||
user.avatar?.getPreferredMimeType() ??
|
||||
"image/svg+xml",
|
||||
href: user.getAvatarUrl(config),
|
||||
},
|
||||
].filter(Boolean) as {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue