File

apps/recallassess/recallassess-api/src/api/shared/media/media.controller.ts

Prefix

api/admin/media

Extends

Index

Methods

Methods

Async addMedia
addMedia(fileList: DiskStorageFile[], module: string, id: number, media_type: string, media_name: string)
Decorators :
@UseInterceptors(undefined)
@Post('add/:module/:id/:media_type/:media_name')
Parameters :
Name Type Optional
fileList DiskStorageFile[] No
module string No
id number No
media_type string No
media_name string No
Returns : unknown
Async deleteMedia
deleteMedia(module: string, record_id: number, media_type: string, media_name: string, id: number)
Decorators :
@Delete('delete/:module/:record_id/:media_type/:media_name/:id')
Parameters :
Name Type Optional
module string No
record_id number No
media_type string No
media_name string No
id number No
Returns : unknown
import { MediaService } from "@api/shared/media/media.service";
import { BaseController } from "@bish-nest/core/controller/base.controller";

import {
  DiskStorage,
  type DiskStorageFile,
  FileFieldsInterceptor,
  UploadedFiles,
} from "@blazity/nest-file-fastify";
import { Controller, Delete, Param, ParseIntPipe, Post, UseInterceptors } from "@nestjs/common";

@Controller("api/admin/media")
export class MediaController extends BaseController<MediaService> {
  constructor(mediaService: MediaService) {
    super(mediaService);
  }

  @UseInterceptors(
    FileFieldsInterceptor(
      [
        { name: "file", maxCount: 25 },
        { name: "image", maxCount: 25 },
        { name: "video", maxCount: 25 },
        { name: "attachment", maxCount: 25 },
      ],
      { storage: new DiskStorage() },
    ),
  )
  @Post("add/:module/:id/:media_type/:media_name")
  async addMedia(
    @UploadedFiles() fileList: DiskStorageFile[],
    @Param("module") module: string,
    @Param("id", ParseIntPipe) id: number,
    @Param("media_type") media_type: string,
    @Param("media_name") media_name: string,
  ) {
    try {
      // /api/media/add/inventory/123/photo
      return this.entityService.addMediaFiles(fileList, module, media_type, media_name, id);
    } catch (error) {
      console.error("Error handling file upload:", error);
      throw error; // or handle the error in a specific way
    }
  }

  @Delete("delete/:module/:record_id/:media_type/:media_name/:id")
  async deleteMedia(
    @Param("module") module: string,
    @Param("record_id", ParseIntPipe) record_id: number,
    @Param("media_type") media_type: string,
    @Param("media_name") media_name: string,
    @Param("id", ParseIntPipe) id: number,
  ) {
    try {
      // /api/media/delete/inventory/123/photo/99
      return this.entityService.deleteMedia(module, media_type, media_name, record_id, id);
    } catch (error) {
      console.error("Error deleting file:", error);
      throw error;
    }
  }
}

results matching ""

    No results matching ""