👔 feat: add collection module

This commit is contained in:
2026-03-27 23:42:26 +07:00
parent e798338107
commit 56c921e800
3 changed files with 54 additions and 0 deletions

View File

@ -0,0 +1,10 @@
import { Context, Static } from "elysia";
import { returnWriteResponse } from "../../../helpers/callback/httpResponse";
import { addItemToCollectionSchema } from "../schemas/addItemToCollection.schema";
export const addItemToCollectionController = async (ctx: {
set: Context["set"];
headers: Static<typeof addItemToCollectionSchema.headers>;
}) => {
return returnWriteResponse(ctx.set, 200, "Item added to collection successfully" + ctx.headers.cookie);
};

View File

@ -0,0 +1,9 @@
import Elysia from "elysia";
import { addItemToCollectionController } from "./controllers/addItemToCollection.controller";
import { addItemToCollectionSchema } from "./schemas/addItemToCollection.schema";
export const collectionModule = new Elysia({ prefix: "/collections", tags: ["Collections"] }).post(
"/:name",
addItemToCollectionController,
addItemToCollectionSchema,
);

View File

@ -0,0 +1,35 @@
import { t } from "elysia";
import { AppRouteSchema } from "../../../helpers/types/AppRouteSchema";
export const addItemToCollectionSchema = {
headers: t.Object({
cookie: t.String({ description: "Authentication token in cookie format, e.g., auth_token=your_jwt_token;" }),
}),
params: t.Object({
name: t.String({ description: "Name of the collection to which the item will be added" }),
}),
body: t.Object({
itemId: t.String({ description: "ID of the item to be added to the collection", examples: ["12345"] }),
}),
detail: {
summary: "Add an item to a collection",
description: "Adds a specified item to a collection identified by its name.",
responses: {
200: {
description: "The item was successfully added to the collection.",
content: {
"application/json": {
schema: {
type: "object",
properties: {
success: { type: "boolean", example: true },
status: { type: "number", example: 200 },
message: { type: "string", example: "Item added to collection successfully" },
},
},
},
},
},
},
},
} satisfies AppRouteSchema;