From 43af43b0a3ccf7389585cb4f2f89ae59a8ce23de Mon Sep 17 00:00:00 2001 From: Rafi Arrafif Date: Sun, 8 Mar 2026 14:59:27 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20docs:=20finish=20controller=20do?= =?UTF-8?q?cumentation=20for=20internal=20module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/bulkInsertVideo.controller.ts | 61 ++----------------- .../createHeroBanner.controller.ts | 29 ++++----- 2 files changed, 19 insertions(+), 71 deletions(-) diff --git a/src/modules/internal/controllers/bulkInsertVideo.controller.ts b/src/modules/internal/controllers/bulkInsertVideo.controller.ts index f66137e..185cd28 100644 --- a/src/modules/internal/controllers/bulkInsertVideo.controller.ts +++ b/src/modules/internal/controllers/bulkInsertVideo.controller.ts @@ -5,65 +5,12 @@ import { returnWriteResponse } from "../../../helpers/callback/httpResponse"; import { bulkInsertVideoSchema } from "../schemas/bulkInsertVideo.schema"; /** - * @function bulkInsertVideoController - * @description Perform bulk insert of videos for specific episodes of a media. This operation inserts multiple videos associated with different episodes into the database based on the provided data. + * Bulk insert videos into the database. * - * @param {Context & { body: BulkInsertVideoBodyRequest }} ctx - * The context object containing the request body. - * The body must include: - * - media_id: string - The ID of the media for which episodes will be inserted. - * - data: Array - An array of episode data, each containing: - * - episode: number - The episode number. - * - videos: Array - An array of video data for the episode, each containing: - * - service_id: string - The ID of the video service. - * - code: string - The code of the video on the service. + * This controller handles the bulk insertion of videos by accepting an array of video data in the request body, + * invoking the service to perform the insertion, and returning a response with the inserted video details. * - * @example - * Request route: POST /internal/video/bulk-insert - * Request body: - * { - * "media_id": "019c064e-a03d-7cc3-b2ae-5d6850ea456b", - * "data": [ - * { - * "episode": 1, - * "videos": [ - * { - * "service_id": "019c0df6-f8fe-7565-82cd-9c29b20232ab", - * "code": "fzwu9n8ge2qt" - * } - * ] - * }, - * { - * "episode": 2, - * "videos": [ - * { - * "service_id": "019c0df6-f8fe-7565-82cd-9c29b20232ab", - * "code": "w2maywh53rt8" - * } - * ] - * } - * ] - * }, - * - * @returns {Promise} - * A response object indicating success or failure. - * Return example: - * { - * success: true, - * status: 201, - * message: "Videos inserted", - * data: { ...insertedVideos } // Data returned only if the env run on development mode - * } - * - * @throws {Object} - * An error response object if validation fails or an error occurs during bulk insert operation. - * Return example: - * { - * success: false, - * status: , - * message: "", - * error: { ...errorDetails } // Additional error details if available and the env run on development mode - * } + * See OpenAPI documentation for request/response schema. */ export const bulkInsertVideoController = async (ctx: { set: Context["set"]; diff --git a/src/modules/internal/controllers/createHeroBanner.controller.ts b/src/modules/internal/controllers/createHeroBanner.controller.ts index 251b769..7949565 100644 --- a/src/modules/internal/controllers/createHeroBanner.controller.ts +++ b/src/modules/internal/controllers/createHeroBanner.controller.ts @@ -1,21 +1,22 @@ -import { Context } from "elysia"; +import { Context, Static } from "elysia"; import { mainErrorHandler } from "../../../helpers/error/handler"; import { createHeroBannerService } from "../services/http/createHeroBanner.service"; import { returnWriteResponse } from "../../../helpers/callback/httpResponse"; +import { createHeroBannerSchema } from "../schemas/createHeroBanner.schema"; -export interface CreateHeroBannerRequestBody { - isClickable?: boolean; - title?: string; - tags: string[]; - description?: string; - buttonContent?: string; - buttonLink?: string; - imageUrl?: string; - startDate: string; - endDate: string; -} - -export const createHeroBannerController = async (ctx: Context & { body: CreateHeroBannerRequestBody }) => { +/** + * Create a new hero banner. + * + * This controller handles the creation of a hero banner by accepting the necessary + * data in the request body, invoking the service to create the banner, and returning + * an created payload response. + * + * See OpenAPI documentation for request/response schema. + */ +export const createHeroBannerController = async (ctx: { + set: Context["set"]; + body: Static; +}) => { try { const createdBanner = await createHeroBannerService(ctx.body); return returnWriteResponse(ctx.set, 201, "Hero banner created successfully", createdBanner);