update license structures and setup file storage services
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
import { Body, Controller, Get, Param, Patch } from '@nestjs/common'
|
||||
import { UpdateLicenseDto } from './dto/license.dto'
|
||||
import { Controller, Get, Param } from '@nestjs/common'
|
||||
import { PartnerLicensesService } from './licenses.service'
|
||||
|
||||
@Controller('admin/licenses')
|
||||
@@ -16,10 +15,10 @@ export class LicensesController {
|
||||
return this.licensesService.findOne(id)
|
||||
}
|
||||
|
||||
@Patch(':id')
|
||||
async update(@Param('id') id: string, @Body() data: UpdateLicenseDto) {
|
||||
return this.licensesService.update(id, data)
|
||||
}
|
||||
// @Patch(':id')
|
||||
// async update(@Param('id') id: string, @Body() data: UpdateLicenseDto) {
|
||||
// return this.licensesService.update(id, data)
|
||||
// }
|
||||
|
||||
// @Delete(':id')
|
||||
// async delete(@Param('id') id: string) {
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
import { LicenseSelect } from '@/generated/prisma/models'
|
||||
import { ActivatedLicenseSelect } from '@/generated/prisma/models'
|
||||
import { PrismaService } from '@/prisma/prisma.service'
|
||||
import { Injectable } from '@nestjs/common'
|
||||
import { ResponseMapper } from 'common/response/response-mapper'
|
||||
import { UpdateLicenseDto } from './dto/license.dto'
|
||||
|
||||
@Injectable()
|
||||
export class PartnerLicensesService {
|
||||
constructor(private readonly prisma: PrismaService) {}
|
||||
|
||||
private readonly licenseDefaultSelect: LicenseSelect = {
|
||||
private readonly licenseDefaultSelect: ActivatedLicenseSelect = {
|
||||
id: true,
|
||||
starts_at: true,
|
||||
expires_at: true,
|
||||
status: true,
|
||||
consumer: {
|
||||
select: {
|
||||
first_name: true,
|
||||
@@ -21,22 +19,31 @@ export class PartnerLicensesService {
|
||||
status: true,
|
||||
},
|
||||
},
|
||||
partner: {
|
||||
license: {
|
||||
select: {
|
||||
id: true,
|
||||
name: true,
|
||||
charged_license_transaction: {
|
||||
select: {
|
||||
partner: {
|
||||
select: {
|
||||
id: true,
|
||||
name: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
async findAll(page = 1, pageSize = 10) {
|
||||
const [licenses, count] = await this.prisma.$transaction([
|
||||
this.prisma.license.findMany({
|
||||
this.prisma.activatedLicense.findMany({
|
||||
select: this.licenseDefaultSelect,
|
||||
skip: (page - 1) * pageSize,
|
||||
take: pageSize,
|
||||
}),
|
||||
this.prisma.license.count(),
|
||||
this.prisma.activatedLicense.count(),
|
||||
])
|
||||
|
||||
return ResponseMapper.paginate(licenses, {
|
||||
@@ -47,22 +54,13 @@ export class PartnerLicensesService {
|
||||
}
|
||||
|
||||
async findOne(id: string) {
|
||||
const license = await this.prisma.license.findFirst({
|
||||
where: { id },
|
||||
include: this.licenseDefaultSelect,
|
||||
omit: {
|
||||
partner_id: true,
|
||||
const license = await this.prisma.activatedLicense.findFirst({
|
||||
where: {
|
||||
id,
|
||||
},
|
||||
select: this.licenseDefaultSelect,
|
||||
})
|
||||
|
||||
return ResponseMapper.single(license)
|
||||
}
|
||||
|
||||
async update(id: string, data: UpdateLicenseDto) {
|
||||
const license = await this.prisma.license.update({
|
||||
where: { id },
|
||||
data: { ...data },
|
||||
})
|
||||
return ResponseMapper.update(license)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user