feat: add response DTOs for various services across modules
- Created response DTOs for ConfigService, AppService, AuthService, CatalogsService, AccountsService, BusinessActivityComplexesService, ComplexPosesService, SalesInvoicesService, BusinessActivitiesService, ConsumerBusinessActivityGoodsService, and others. - Implemented Create, FindAll, FindOne, and Update response types for services in consumer, partners, and POS modules. - Added request DTOs for creating and updating goods in the consumer business activities module. - Introduced filtering DTO for partner licenses. - Enhanced response mapping for partner license activations.
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
import type { PartnerLicensesService } from '../licenses.service'
|
||||
|
||||
export type PartnerLicensesServiceFindAllResponseDto = Awaited<ReturnType<PartnerLicensesService['findAll']>>
|
||||
export type PartnerLicensesServiceFindOneResponseDto = Awaited<ReturnType<PartnerLicensesService['findOne']>>
|
||||
@@ -1,17 +1,18 @@
|
||||
import { Controller, Get, Param } from '@nestjs/common'
|
||||
import { PartnerLicensesService } from './licenses.service'
|
||||
import type { PartnerLicensesServiceFindAllResponseDto, PartnerLicensesServiceFindOneResponseDto } from './dto/licenses-response.dto'
|
||||
|
||||
@Controller('admin/licenses')
|
||||
export class LicensesController {
|
||||
constructor(private readonly licensesService: PartnerLicensesService) {}
|
||||
|
||||
@Get()
|
||||
async findAll() {
|
||||
async findAll(): Promise<PartnerLicensesServiceFindAllResponseDto> {
|
||||
return this.licensesService.findAll()
|
||||
}
|
||||
|
||||
@Get(':id')
|
||||
async findOne(@Param('id') id: string) {
|
||||
async findOne(@Param('id') id: string): Promise<PartnerLicensesServiceFindOneResponseDto> {
|
||||
return this.licensesService.findOne(id)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { QUERY_CONSTANTS } from '@/common/queryConstants'
|
||||
import consumer_mappersUtil from '@/common/utils/mappers/consumer_mappers.util'
|
||||
import { LicenseActivationSelect } from '@/generated/prisma/models'
|
||||
import { PrismaService } from '@/prisma/prisma.service'
|
||||
import { Injectable } from '@nestjs/common'
|
||||
@@ -18,8 +20,7 @@ export class PartnerLicensesService {
|
||||
consumer: {
|
||||
select: {
|
||||
id: true,
|
||||
first_name: true,
|
||||
last_name: true,
|
||||
...QUERY_CONSTANTS.CONSUMER.infoSelect,
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -49,7 +50,7 @@ export class PartnerLicensesService {
|
||||
}
|
||||
|
||||
async findAll(page = 1, perPage = 10) {
|
||||
const [licenses, total] = await this.prisma.$transaction([
|
||||
const [activatedLicenses, total] = await this.prisma.$transaction([
|
||||
this.prisma.licenseActivation.findMany({
|
||||
select: this.licenseDefaultSelect,
|
||||
skip: (page - 1) * perPage,
|
||||
@@ -58,7 +59,22 @@ export class PartnerLicensesService {
|
||||
this.prisma.licenseActivation.count(),
|
||||
])
|
||||
|
||||
return ResponseMapper.paginate(licenses, {
|
||||
const mappedLicenses = activatedLicenses.map(license => {
|
||||
const { business_activity, ...rest } = license
|
||||
const { consumer, ...businessActivityRest } = business_activity as any
|
||||
|
||||
const mappedConsumer = consumer_mappersUtil(consumer)
|
||||
|
||||
return {
|
||||
...rest,
|
||||
business_activity: {
|
||||
...businessActivityRest,
|
||||
mappedConsumer,
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
return ResponseMapper.paginate(activatedLicenses, {
|
||||
total,
|
||||
page,
|
||||
perPage,
|
||||
|
||||
Reference in New Issue
Block a user