Merge pull request 'create controller documentation' (#7) from docs into main
All checks were successful
Sync to GitHub / sync (push) Successful in 8s
All checks were successful
Sync to GitHub / sync (push) Successful in 8s
Reviewed-on: #7
This commit is contained in:
@ -14,6 +14,67 @@ export interface BulkInsertVideoBodyRequest {
|
|||||||
}>;
|
}>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @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.
|
||||||
|
*
|
||||||
|
* @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.
|
||||||
|
*
|
||||||
|
* @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<Object>}
|
||||||
|
* 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: <Status Code>,
|
||||||
|
* message: "<Error Message>",
|
||||||
|
* error: { ...errorDetails } // Additional error details if available and the env run on development mode
|
||||||
|
* }
|
||||||
|
*/
|
||||||
export const bulkInsertVideoController = async (
|
export const bulkInsertVideoController = async (
|
||||||
ctx: Context & { body: BulkInsertVideoBodyRequest },
|
ctx: Context & { body: BulkInsertVideoBodyRequest },
|
||||||
) => {
|
) => {
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { mainErrorHandler } from "../../../helpers/error/handler";
|
|||||||
import { returnWriteResponse } from "../../../helpers/callback/httpResponse";
|
import { returnWriteResponse } from "../../../helpers/callback/httpResponse";
|
||||||
import { createVideoServiceInternalService } from "../services/http/createVideoService.service";
|
import { createVideoServiceInternalService } from "../services/http/createVideoService.service";
|
||||||
|
|
||||||
export interface CreateVideoServiceBodyRequest {
|
export interface CreateVideoServiceInternalBodyRequest {
|
||||||
name: string;
|
name: string;
|
||||||
domain: string;
|
domain: string;
|
||||||
logo: string;
|
logo: string;
|
||||||
@ -13,8 +13,56 @@ export interface CreateVideoServiceBodyRequest {
|
|||||||
endpointDownload?: string;
|
endpointDownload?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function createVideoServiceInternalController
|
||||||
|
* @description Perform creation of a new video service. This operation adds a new video service to the database based on the provided data.
|
||||||
|
*
|
||||||
|
* @param {Context & { body: CreateVideoServiceInternalBodyRequest }} ctx
|
||||||
|
* The context object containing the request body.
|
||||||
|
* The body must include:
|
||||||
|
* - name: string - The name of the video service.
|
||||||
|
* - domain: string - The domain of the video service.
|
||||||
|
* - logo: string - The logo URL of the video service.
|
||||||
|
* - hexColor: string - The hex color associated with the video service.
|
||||||
|
* - endpointVideo: string - The endpoint URL for video streaming.
|
||||||
|
* - endpointThumbnail: string - The endpoint URL for thumbnails.
|
||||||
|
* - endpointDownload?: string - (Optional) The endpoint URL for downloads.
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* Request route: POST /internal/video-service
|
||||||
|
* Request body:
|
||||||
|
* {
|
||||||
|
* "name": "Example Video Service",
|
||||||
|
* "domain": "example.com",
|
||||||
|
* "logo": "https://example.com/logo.png",
|
||||||
|
* "hexColor": "#FF5733",
|
||||||
|
* "endpointVideo": "https://api.example.com/videos",
|
||||||
|
* "endpointThumbnail": "https://api.example.com/thumbnails",
|
||||||
|
* "endpointDownload": "https://api.example.com/downloads"
|
||||||
|
* },
|
||||||
|
*
|
||||||
|
* @returns {Promise<Object>}
|
||||||
|
* A response object indicating success or failure.
|
||||||
|
* Return example:
|
||||||
|
* {
|
||||||
|
* success: true,
|
||||||
|
* status: 201,
|
||||||
|
* message: "Video service created",
|
||||||
|
* data: { ...createdVideoService } // 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: <Status Code>,
|
||||||
|
* message: "<Error Message>",
|
||||||
|
* error: { ...errorDetails } // Additional error details if available and the env run on development mode
|
||||||
|
* }
|
||||||
|
*/
|
||||||
export const createVideoServiceInternalController = async (
|
export const createVideoServiceInternalController = async (
|
||||||
ctx: Context & { body: CreateVideoServiceBodyRequest },
|
ctx: Context & { body: CreateVideoServiceInternalBodyRequest },
|
||||||
) => {
|
) => {
|
||||||
try {
|
try {
|
||||||
const createdVideoService = await createVideoServiceInternalService(
|
const createdVideoService = await createVideoServiceInternalService(
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
import { SystemAccountId } from "../../../../config/account/system";
|
import { SystemAccountId } from "../../../../config/account/system";
|
||||||
import { ErrorForwarder } from "../../../../helpers/error/instances/forwarder";
|
import { ErrorForwarder } from "../../../../helpers/error/instances/forwarder";
|
||||||
import { CreateVideoServiceBodyRequest } from "../../controllers/createVideoService.controller";
|
import { CreateVideoServiceInternalBodyRequest } from "../../controllers/createVideoService.controller";
|
||||||
import { createVideoServiceInternalRepository } from "../../repositories/createVideoService.repository";
|
import { createVideoServiceInternalRepository } from "../../repositories/createVideoService.repository";
|
||||||
|
|
||||||
export const createVideoServiceInternalService = async (
|
export const createVideoServiceInternalService = async (
|
||||||
body: CreateVideoServiceBodyRequest,
|
body: CreateVideoServiceInternalBodyRequest,
|
||||||
) => {
|
) => {
|
||||||
try {
|
try {
|
||||||
return await createVideoServiceInternalRepository({
|
return await createVideoServiceInternalRepository({
|
||||||
|
|||||||
Reference in New Issue
Block a user