diff --git a/src/pet/controllers/admin/manage-pet-category.controller.ts b/src/pet/controllers/admin/manage-pet-category.controller.ts index 27d0a4e..f5e831b 100644 --- a/src/pet/controllers/admin/manage-pet-category.controller.ts +++ b/src/pet/controllers/admin/manage-pet-category.controller.ts @@ -1,3 +1,4 @@ +import { PetCategoryInjectionKey } from './../../providers/pet-category.provider'; import { Body, Controller, @@ -7,6 +8,7 @@ import { Post, Redirect, Render, + Inject, } from '@nestjs/common'; import { CreatePetCategoryDto } from 'src/pet/dtos/pet-dto'; import { plainToInstance } from 'class-transformer'; @@ -14,6 +16,7 @@ import { validate, ValidationError } from 'class-validator'; import { FormDataRequest } from 'nestjs-form-data'; import { PetCategory } from 'src/pet/models/pet-category.model'; import { Response } from 'express'; +import { PetCategoryRepository } from 'src/pet/repositories/pet-category.repository'; const transformError = (error: ValidationError) => { const { property, constraints } = error; @@ -24,10 +27,16 @@ const transformError = (error: ValidationError) => { }; @Controller('admin/pet-categories') export class ManagePetCategoryController { + constructor( + private petCategoryRepository: PetCategoryRepository, + @Inject(PetCategoryInjectionKey) + private defaultPetCategoryRepository: typeof PetCategory, + ) {} @Get('') @Render('pet/admin/manage-pet-category/list') async getList() { - const petCategories = await PetCategory.findAll(); + // const petCategories = await this.petCategoryRepository.findAll(); + const petCategories = await this.defaultPetCategoryRepository.findAll(); return { petCategories, }; diff --git a/src/pet/pet.module.ts b/src/pet/pet.module.ts index 2b71fe6..5ca35c3 100644 --- a/src/pet/pet.module.ts +++ b/src/pet/pet.module.ts @@ -6,6 +6,8 @@ import { ManagePetController } from './controllers/admin/manage-pet.controller'; import { ManagePetCategoryController } from './controllers/admin/manage-pet-category.controller'; import { ManagePetAttributeController } from './controllers/admin/manage-pet-attribute.controller'; import { NestjsFormDataModule } from 'nestjs-form-data'; +import { PetCategoryRepository } from './repositories/pet-category.repository'; +import { PetCategoryProvider } from './providers/pet-category.provider'; @Module({ imports: [NestjsFormDataModule], controllers: [ @@ -14,5 +16,6 @@ import { NestjsFormDataModule } from 'nestjs-form-data'; ManagePetCategoryController, ManagePetAttributeController, ], + providers: [PetCategoryRepository, PetCategoryProvider], }) export class PetModule {} diff --git a/src/pet/providers/pet-category.provider.ts b/src/pet/providers/pet-category.provider.ts new file mode 100644 index 0000000..5b5c860 --- /dev/null +++ b/src/pet/providers/pet-category.provider.ts @@ -0,0 +1,7 @@ +import { PetCategory } from '../models/pet-category.model'; + +export const PetCategoryInjectionKey = 'Pet_Category'; +export const PetCategoryProvider = { + provide: PetCategoryInjectionKey, + useValue: PetCategory, +}; diff --git a/src/pet/repositories/pet-category.repository.ts b/src/pet/repositories/pet-category.repository.ts new file mode 100644 index 0000000..e6ae2f0 --- /dev/null +++ b/src/pet/repositories/pet-category.repository.ts @@ -0,0 +1,9 @@ +import { Injectable } from '@nestjs/common'; +import { PetCategory } from '../models/pet-category.model'; + +@Injectable() +export class PetCategoryRepository { + findAll() { + return PetCategory.findAll(); + } +}