From 835a1ca53485b703d5f52f75ec35eba112258c65 Mon Sep 17 00:00:00 2001 From: longdayi <13477510+longdayilongdayi@user.noreply.gitee.com> Date: Tue, 3 Sep 2024 18:07:48 +0800 Subject: [PATCH] 09031807 --- apps/server/package.json | 8 +++++-- apps/server/src/app.module.ts | 6 +++-- .../transform/transform.controller.spec.ts | 18 +++++++++++++++ .../src/transform/transform.controller.ts | 23 +++++++++++++++++++ apps/server/src/transform/transform.module.ts | 9 ++++++++ .../src/transform/transform.service.spec.ts | 18 +++++++++++++++ .../server/src/transform/transform.service.ts | 4 ++++ 7 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 apps/server/src/transform/transform.controller.spec.ts create mode 100644 apps/server/src/transform/transform.controller.ts create mode 100644 apps/server/src/transform/transform.module.ts create mode 100644 apps/server/src/transform/transform.service.spec.ts create mode 100644 apps/server/src/transform/transform.service.ts diff --git a/apps/server/package.json b/apps/server/package.json index 0198d66..5c048ee 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -37,17 +37,21 @@ "socket.io": "^4.7.5", "superjson-cjs": "^2.2.3", "tus-js-client": "^4.1.0", - "zod": "^3.23.8" + "zod": "^3.23.8", + "dayjs": "^1.11.13", + "exceljs": "^4.4.0" }, "devDependencies": { "@nestjs/cli": "^10.0.0", "@nestjs/schematics": "^10.0.0", "@nestjs/testing": "^10.0.0", - "@types/express": "^4.17.17", "@types/jest": "^29.5.2", "@types/mime-types": "^2.1.4", "@types/node": "^20.3.1", "@types/supertest": "^6.0.0", + "@types/exceljs": "^1.3.0", + "@types/express": "^4.17.21", + "@types/multer": "^1.4.12", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", "eslint": "^8.42.0", diff --git a/apps/server/src/app.module.ts b/apps/server/src/app.module.ts index 3e1647d..6899d13 100644 --- a/apps/server/src/app.module.ts +++ b/apps/server/src/app.module.ts @@ -7,10 +7,12 @@ import { RedisService } from './redis/redis.service'; import { RedisModule } from './redis/redis.module'; import { SocketGateway } from './socket/socket.gateway'; import { QueueModule } from './queue/queue.module'; +import { TransformModule } from './transform/transform.module'; +import { ControllerService } from './controller/controller.service'; @Module({ - imports: [TrpcModule, RedisModule, QueueModule], + imports: [TrpcModule, RedisModule, QueueModule, TransformModule], controllers: [AppController], - providers: [AppService, RedisService, SocketGateway], + providers: [AppService, RedisService, SocketGateway, ControllerService], }) export class AppModule { } diff --git a/apps/server/src/transform/transform.controller.spec.ts b/apps/server/src/transform/transform.controller.spec.ts new file mode 100644 index 0000000..78829ae --- /dev/null +++ b/apps/server/src/transform/transform.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { TransformController } from './transform.controller'; + +describe('TransformController', () => { + let controller: TransformController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [TransformController], + }).compile(); + + controller = module.get(TransformController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/apps/server/src/transform/transform.controller.ts b/apps/server/src/transform/transform.controller.ts new file mode 100644 index 0000000..998f77e --- /dev/null +++ b/apps/server/src/transform/transform.controller.ts @@ -0,0 +1,23 @@ +import { + Controller, + Post, + UseInterceptors, + UploadedFile, + Body, +} from '@nestjs/common'; +import { FileInterceptor } from '@nestjs/platform-express'; +@Controller('transform') +export class TransformController { + @Post('import') + @UseInterceptors(FileInterceptor('file')) + async uploadFile(@UploadedFile() file: Express.Multer.File, @Body('type') type: string) { + console.log(file); + let result = 'test'; + switch (type) { + default: + throw new Error(`Unsupported import type: ${type}`); + } + + return result; + } +} diff --git a/apps/server/src/transform/transform.module.ts b/apps/server/src/transform/transform.module.ts new file mode 100644 index 0000000..898eef7 --- /dev/null +++ b/apps/server/src/transform/transform.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { TransformController } from './transform.controller'; +import { TransformService } from './transform.service'; + +@Module({ + controllers: [TransformController], + providers: [TransformService] +}) +export class TransformModule {} diff --git a/apps/server/src/transform/transform.service.spec.ts b/apps/server/src/transform/transform.service.spec.ts new file mode 100644 index 0000000..686f2c8 --- /dev/null +++ b/apps/server/src/transform/transform.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { TransformService } from './transform.service'; + +describe('TransformService', () => { + let service: TransformService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [TransformService], + }).compile(); + + service = module.get(TransformService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/apps/server/src/transform/transform.service.ts b/apps/server/src/transform/transform.service.ts new file mode 100644 index 0000000..8df4247 --- /dev/null +++ b/apps/server/src/transform/transform.service.ts @@ -0,0 +1,4 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class TransformService {}