Skip to content

Commit 225ed25

Browse files
committed
feat(keyword): add find method #69
1 parent 68e6d07 commit 225ed25

6 files changed

+58
-0
lines changed

src/app.module.ts

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { LoggerModule } from 'nestjs-pino';
1212
import { ServeStaticModule } from '@nestjs/serve-static';
1313
import { join } from 'path';
1414
import { StudioModule } from './studio/studio.module';
15+
import { KeywordModule } from './keyword/keyword.module';
1516

1617
@Module({
1718
imports: [
@@ -44,6 +45,7 @@ import { StudioModule } from './studio/studio.module';
4445
ReviewModule,
4546
PersonModule,
4647
StudioModule,
48+
KeywordModule,
4749
ImageModule,
4850
AuthModule,
4951
],
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { AbstractFindManyDto } from '../../common/dto/abstract/abstract-find-many.dto';
2+
import { PaginatedQueryDto } from '../../common/dto/query/paginated.query.dto';
3+
import { Keyword } from '../schemas/keyword.schema';
4+
5+
export class FindManyKeywordDto extends AbstractFindManyDto(Keyword, Keyword, PaginatedQueryDto) {
6+
constructor(partial: Partial<FindManyKeywordDto>) {
7+
super(partial);
8+
Object.assign(this, partial);
9+
}
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { AbstractDocsResponseDto } from '../../common/dto/abstract/abstract-docs.response.dto';
2+
import { Keyword } from '../schemas/keyword.schema';
3+
4+
export class KeywordDocsResponseDto extends AbstractDocsResponseDto(Keyword) {
5+
constructor(partial: Partial<KeywordDocsResponseDto>) {
6+
super(partial);
7+
Object.assign(this, partial);
8+
}
9+
}

src/keyword/keyword.controller.ts

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { BaseController } from 'src/common/base/base.controller';
2+
import { Controller } from 'src/common/decorators/controller.decorator';
3+
import { KeywordDocsResponseDto } from './dto/keyword-docs-response.dto';
4+
import { Keyword } from './schemas/keyword.schema';
5+
import { KeywordService } from './keyword.service';
6+
7+
@Controller('keyword', 'Ключевые слова')
8+
export class KeywordController extends BaseController(Keyword, KeywordDocsResponseDto, 'Поиск по ключевым словам') {
9+
constructor(private readonly keywordService: KeywordService) {
10+
super(keywordService);
11+
}
12+
}

src/keyword/keyword.module.ts

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { Module } from '@nestjs/common';
2+
import { MongooseModule } from '@nestjs/mongoose';
3+
import { Keyword, KeywordSchema } from './schemas/keyword.schema';
4+
import { KeywordController } from './keyword.controller';
5+
import { KeywordService } from './keyword.service';
6+
7+
@Module({
8+
imports: [MongooseModule.forFeature([{ name: Keyword.name, schema: KeywordSchema }])],
9+
controllers: [KeywordController],
10+
providers: [KeywordService],
11+
})
12+
export class KeywordModule {}

src/keyword/keyword.service.ts

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Injectable } from '@nestjs/common';
2+
import { InjectModel } from '@nestjs/mongoose';
3+
import { Model } from 'mongoose';
4+
import { BaseService } from 'src/common/base/base.service';
5+
6+
import { Keyword, KeywordDocument } from './schemas/keyword.schema';
7+
8+
@Injectable()
9+
export class KeywordService extends BaseService<Keyword> {
10+
constructor(@InjectModel(Keyword.name) private readonly keywordModel: Model<KeywordDocument>) {
11+
super(keywordModel);
12+
}
13+
}

0 commit comments

Comments
 (0)