♻️ refactor: add schema to all controllers in internal module
This commit is contained in:
107
src/modules/internal/schemas/createHeroBanner.schema.ts
Normal file
107
src/modules/internal/schemas/createHeroBanner.schema.ts
Normal file
@ -0,0 +1,107 @@
|
||||
import { t } from "elysia";
|
||||
import { AppRouteSchema } from "../../../helpers/types/AppRouteSchema";
|
||||
|
||||
export const createHeroBannerSchema = {
|
||||
body: t.Object({
|
||||
isClickable: t.Optional(
|
||||
t.Boolean({
|
||||
description: "Indicates whether the hero banner is clickable",
|
||||
}),
|
||||
),
|
||||
title: t.Optional(
|
||||
t.String({
|
||||
description: "The title of the hero banner",
|
||||
}),
|
||||
),
|
||||
tags: t.Array(t.String(), {
|
||||
description: "An array of tags associated with the hero banner",
|
||||
}),
|
||||
description: t.Optional(
|
||||
t.String({
|
||||
description: "A brief description of the hero banner",
|
||||
}),
|
||||
),
|
||||
buttonContent: t.Optional(
|
||||
t.String({
|
||||
description: "The text content of the button on the hero banner",
|
||||
}),
|
||||
),
|
||||
buttonLink: t.Optional(
|
||||
t.String({
|
||||
description: "The URL that the button on the hero banner links to",
|
||||
}),
|
||||
),
|
||||
imageUrl: t.Optional(
|
||||
t.String({
|
||||
description: "The URL of the image used in the hero banner",
|
||||
}),
|
||||
),
|
||||
startDate: t.String({
|
||||
description: "The start date for the hero banner in ISO 8601 format",
|
||||
}),
|
||||
endDate: t.String({
|
||||
description: "The end date for the hero banner in ISO 8601 format",
|
||||
}),
|
||||
}),
|
||||
detail: {
|
||||
summary: "Create a new hero banner",
|
||||
description:
|
||||
"Perform creation of a new hero banner. This operation adds a new hero banner to the database based on the provided data.",
|
||||
responses: {
|
||||
201: {
|
||||
description: "Hero banner created successfully",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: {
|
||||
type: "object",
|
||||
properties: {
|
||||
success: { type: "boolean", default: true },
|
||||
status: { type: "integer", default: 201 },
|
||||
message: { type: "string", default: "Hero banner created successfully" },
|
||||
data: {
|
||||
type: "object",
|
||||
description:
|
||||
"The created hero banner object. This field is returned only if the environment is running in development mode.",
|
||||
properties: {
|
||||
id: { type: "string", description: "The ID of the created hero banner" },
|
||||
isClickable: { type: "boolean", description: "Indicates whether the hero banner is clickable" },
|
||||
title: { type: "string", description: "The title of the hero banner" },
|
||||
tags: {
|
||||
type: "array",
|
||||
items: { type: "string" },
|
||||
description: "An array of tags associated with the hero banner",
|
||||
},
|
||||
description: { type: "string", description: "A brief description of the hero banner" },
|
||||
buttonContent: { type: "string", description: "The text content of the button on the hero banner" },
|
||||
buttonLink: { type: "string", description: "The URL that the button on the hero banner links to" },
|
||||
imageUrl: { type: "string", description: "The URL of the image used in the hero banner" },
|
||||
startDate: {
|
||||
type: "string",
|
||||
format: "date-time",
|
||||
description: "The start date for the hero banner in ISO 8601 format",
|
||||
},
|
||||
endDate: {
|
||||
type: "string",
|
||||
format: "date-time",
|
||||
description: "The end date for the hero banner in ISO 8601 format",
|
||||
},
|
||||
createdAt: {
|
||||
type: "string",
|
||||
format: "date-time",
|
||||
description: "The timestamp when the hero banner was created",
|
||||
},
|
||||
updatedAt: {
|
||||
type: "string",
|
||||
format: "date-time",
|
||||
description: "The timestamp when the hero banner was last updated",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
} satisfies AppRouteSchema;
|
||||
@ -0,0 +1,92 @@
|
||||
import { t } from "elysia";
|
||||
import { AppRouteSchema } from "../../../helpers/types/AppRouteSchema";
|
||||
|
||||
export const createVideoServiceInternalSchema = {
|
||||
body: t.Object({
|
||||
name: t.String({
|
||||
description: "The name of the video service",
|
||||
}),
|
||||
domain: t.String({
|
||||
description: "The domain of the video service",
|
||||
}),
|
||||
logo: t.String({
|
||||
description: "The logo URL of the video service",
|
||||
}),
|
||||
hexColor: t.String({
|
||||
description: "The hex color associated with the video service",
|
||||
}),
|
||||
endpointVideo: t.String({
|
||||
description: "The endpoint URL for video streaming",
|
||||
}),
|
||||
endpointThumbnail: t.String({
|
||||
description: "The endpoint URL for thumbnails",
|
||||
}),
|
||||
endpointDownload: t.Optional(
|
||||
t.String({
|
||||
description: "The endpoint URL for downloads",
|
||||
}),
|
||||
),
|
||||
}),
|
||||
detail: {
|
||||
summary: "Create a new video service",
|
||||
description:
|
||||
"Perform creation of a new video service. This operation adds a new video service to the database based on the provided data.",
|
||||
responses: {
|
||||
201: {
|
||||
description: "Video service created successfully",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: {
|
||||
type: "object",
|
||||
properties: {
|
||||
success: { type: "boolean", default: true },
|
||||
status: { type: "integer", default: 201 },
|
||||
message: { type: "string", default: "Video service created" },
|
||||
data: {
|
||||
type: "object",
|
||||
description:
|
||||
"The created video service object. This field is returned only if the environment is running in development mode.",
|
||||
properties: {
|
||||
id: { type: "string", description: "The ID of the created video service" },
|
||||
name: { type: "string", description: "The name of the video service" },
|
||||
domain: { type: "string", description: "The domain of the video service" },
|
||||
logo: { type: "string", description: "The logo URL of the video service" },
|
||||
hexColor: { type: "string", description: "The hex color associated with the video service" },
|
||||
endpointVideo: { type: "string", description: "The endpoint URL for video streaming" },
|
||||
endpointThumbnail: { type: "string", description: "The endpoint URL for thumbnails" },
|
||||
endpointDownload: {
|
||||
type: "string",
|
||||
description:
|
||||
"The endpoint URL for downloads. This field is optional and may be null if not provided.",
|
||||
},
|
||||
createdAt: {
|
||||
type: "string",
|
||||
format: "date-time",
|
||||
description: "The timestamp when the video service was created",
|
||||
},
|
||||
updatedAt: {
|
||||
type: "string",
|
||||
format: "date-time",
|
||||
description: "The timestamp when the video service was last updated",
|
||||
},
|
||||
deletedAt: {
|
||||
type: "string",
|
||||
format: "date-time",
|
||||
description:
|
||||
"The timestamp when the video service was deleted. This field is null if the video service is not deleted.",
|
||||
},
|
||||
createdBy: {
|
||||
type: "string",
|
||||
description:
|
||||
"The ID of the account that created the video service (filled with the system account ID)",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
} satisfies AppRouteSchema;
|
||||
34
src/modules/internal/schemas/purgeUnusedSession.schema.ts
Normal file
34
src/modules/internal/schemas/purgeUnusedSession.schema.ts
Normal file
@ -0,0 +1,34 @@
|
||||
import { AppRouteSchema } from "../../../helpers/types/AppRouteSchema";
|
||||
|
||||
export const purgeUnusedSessionSchema = {
|
||||
detail: {
|
||||
summary: "Purge all unused user sessions",
|
||||
description:
|
||||
"Perform purge of all unused user sessions. This operation deletes all user sessions from the database that are considered unused based on authentication status and deleted status. This helps in maintaining a clean session store and improving security by removing stale sessions.",
|
||||
responses: {
|
||||
200: {
|
||||
description: "Unused user sessions purged successfully",
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: {
|
||||
type: "object",
|
||||
properties: {
|
||||
success: { type: "boolean", default: true },
|
||||
status: { type: "integer", default: 200 },
|
||||
message: { type: "string", default: "Successfully purged all unused user sessions" },
|
||||
data: {
|
||||
type: "object",
|
||||
description:
|
||||
"An object containing details about the purge operation. This field is returned only if the environment is running in development mode.",
|
||||
properties: {
|
||||
count: { type: "integer", description: "The number of user sessions that were purged" },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
} satisfies AppRouteSchema;
|
||||
Reference in New Issue
Block a user