add new module

This commit is contained in:
2025-05-18 21:06:51 +08:00
parent c196b00708
commit fd6631aba6
10 changed files with 433 additions and 140 deletions
@@ -1,18 +0,0 @@
import { Injectable } from '@nestjs/common';
import { IsNotEmpty, IsOptional, MaxLength } from 'class-validator';
@Injectable()
export class CreatePostDto {
@MaxLength(255, { always: true, message: 'the max length of content title is $constraint1' })
@IsNotEmpty({ groups: ['create'], message: 'the title of content should not be empty' })
@IsOptional({ groups: ['update'] })
title: string;
@IsNotEmpty({ groups: ['create'], message: 'the body of content should not be empty' })
@IsOptional({ groups: ['update'] })
body: string;
@MaxLength(500, { always: true, message: 'the max length of content summary is $constraint1' })
@IsOptional({ always: true })
summary?: string;
}
@@ -1,13 +0,0 @@
import { Injectable } from '@nestjs/common';
import { PartialType } from '@nestjs/swagger';
import { IsDefined, IsNumber } from 'class-validator';
import { CreatePostDto } from './create-post.dto';
@Injectable()
export class UpdatePostDto extends PartialType(CreatePostDto) {
@IsNumber(undefined, { groups: ['update'], message: 'The format of the post ID is incorrect.' })
@IsDefined({ groups: ['update'], message: 'The post ID must be specified' })
id: number;
}
-6
View File
@@ -1,6 +0,0 @@
export interface PostEntity {
id: number;
title: string;
summary?: string;
body: string;
}
@@ -1,53 +0,0 @@
import { DynamicModule, Global, Injectable, Module } from '@nestjs/common';
import { get } from 'lodash';
import { AppController } from '@/app.controller';
import { AppService } from '@/app.service';
import { ContentModule } from '@/modules/content/content.module';
const config: Record<string, any> = {
name: 'ray',
};
@Injectable()
export class ConfigService {
protected config: RecordAny = {};
constructor(data: RecordAny) {
this.config = data;
}
get<T>(key: string, defaultValue?: T): T | undefined {
return get(config, key, defaultValue);
}
}
@Global()
@Module({
providers: [ConfigService],
exports: [ConfigService],
})
export class CoreModule {
static forRoot(options: { config: RecordAny }): DynamicModule {
return {
module: CoreModule,
global: true,
providers: [
{
provide: ConfigService,
useFactory() {
return new ConfigService(options.config);
},
},
],
exports: [ConfigService],
};
}
}
@Module({
imports: [ContentModule, CoreModule.forRoot({ config: { name: 'ray' } })],
providers: [AppService],
controllers: [AppController],
})
export class AppModule {}