update
This commit is contained in:
@@ -18,7 +18,5 @@ import { env } from 'prisma/config'
|
|||||||
WHERE TRIGGER_SCHEMA = DATABASE();
|
WHERE TRIGGER_SCHEMA = DATABASE();
|
||||||
`)
|
`)
|
||||||
|
|
||||||
console.log(rows)
|
|
||||||
|
|
||||||
await db.end()
|
await db.end()
|
||||||
})()
|
})()
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
import { SetMetadata } from '@nestjs/common'
|
||||||
|
|
||||||
|
export const IS_PUBLIC_WITH_TOKEN_KEY = 'IS_PUBLIC_WITH_TOKEN_KEY'
|
||||||
|
export const PublicWithToken = () => SetMetadata(IS_PUBLIC_WITH_TOKEN_KEY, true)
|
||||||
@@ -10,6 +10,7 @@ import { Reflector } from '@nestjs/core'
|
|||||||
import { JwtService } from '@nestjs/jwt'
|
import { JwtService } from '@nestjs/jwt'
|
||||||
import { Request as ExpressRequest } from 'express'
|
import { Request as ExpressRequest } from 'express'
|
||||||
import { IS_PUBLIC_KEY } from '../decorators/public.decorator'
|
import { IS_PUBLIC_KEY } from '../decorators/public.decorator'
|
||||||
|
import { IS_PUBLIC_WITH_TOKEN_KEY } from '../decorators/withToken.decorator'
|
||||||
import { ConsumerGuard } from './auth-consumer.guard'
|
import { ConsumerGuard } from './auth-consumer.guard'
|
||||||
import { PosGuard } from './auth-pos.guard'
|
import { PosGuard } from './auth-pos.guard'
|
||||||
|
|
||||||
@@ -43,6 +44,14 @@ export class JwtAuthGuard implements CanActivate {
|
|||||||
|
|
||||||
if (!token) throw new UnauthorizedException('Missing access token')
|
if (!token) throw new UnauthorizedException('Missing access token')
|
||||||
|
|
||||||
|
const isPublicWithToken = this.reflector.getAllAndOverride<boolean>(
|
||||||
|
IS_PUBLIC_WITH_TOKEN_KEY,
|
||||||
|
[context.getHandler(), context.getClass()],
|
||||||
|
)
|
||||||
|
if (isPublicWithToken) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this.jwt.verify(token, {
|
this.jwt.verify(token, {
|
||||||
secret: process.env.JWT_SECRET,
|
secret: process.env.JWT_SECRET,
|
||||||
|
|||||||
@@ -30,3 +30,12 @@ export class UpdatePartnerDto extends PartialType(CreatePartnerDto) {
|
|||||||
@ApiProperty({ enum: PartnerStatus })
|
@ApiProperty({ enum: PartnerStatus })
|
||||||
status: PartnerStatus
|
status: PartnerStatus
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class LicenseChargeDto {
|
||||||
|
@IsNumber()
|
||||||
|
@ApiProperty({
|
||||||
|
required: true,
|
||||||
|
minimum: 0,
|
||||||
|
})
|
||||||
|
count: number
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common'
|
import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common'
|
||||||
import { CreatePartnerDto, UpdatePartnerDto } from './dto/partner.dto'
|
import { CreatePartnerDto, LicenseChargeDto, UpdatePartnerDto } from './dto/partner.dto'
|
||||||
import { PartnersService } from './partners.service'
|
import { PartnersService } from './partners.service'
|
||||||
|
|
||||||
@Controller('admin/partners')
|
@Controller('admin/partners')
|
||||||
@@ -26,6 +26,11 @@ export class PartnersController {
|
|||||||
return this.partnersService.update(id, data)
|
return this.partnersService.update(id, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Post(':id/charge-license')
|
||||||
|
async licenseCharge(@Param('id') id: string, @Body() data: LicenseChargeDto) {
|
||||||
|
return this.partnersService.licenseCharge(id, data)
|
||||||
|
}
|
||||||
|
|
||||||
@Delete(':id')
|
@Delete(':id')
|
||||||
async delete(@Param('id') id: string) {
|
async delete(@Param('id') id: string) {
|
||||||
return this.partnersService.delete(id)
|
return this.partnersService.delete(id)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import {
|
|||||||
import { PrismaService } from '@/prisma/prisma.service'
|
import { PrismaService } from '@/prisma/prisma.service'
|
||||||
import { Injectable } from '@nestjs/common'
|
import { Injectable } from '@nestjs/common'
|
||||||
import { ResponseMapper } from 'common/response/response-mapper'
|
import { ResponseMapper } from 'common/response/response-mapper'
|
||||||
import { CreatePartnerDto, UpdatePartnerDto } from './dto/partner.dto'
|
import { CreatePartnerDto, LicenseChargeDto, UpdatePartnerDto } from './dto/partner.dto'
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class PartnersService {
|
export class PartnersService {
|
||||||
@@ -69,6 +69,18 @@ export class PartnersService {
|
|||||||
return ResponseMapper.update(partner)
|
return ResponseMapper.update(partner)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async licenseCharge(id: string, data: LicenseChargeDto) {
|
||||||
|
const partner = await this.prisma.partner.update({
|
||||||
|
where: { id },
|
||||||
|
data: {
|
||||||
|
license_quota: {
|
||||||
|
increment: data.count,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return ResponseMapper.update(partner)
|
||||||
|
}
|
||||||
|
|
||||||
async delete(id: string) {
|
async delete(id: string) {
|
||||||
await this.prisma.partner.delete({ where: { id } })
|
await this.prisma.partner.delete({ where: { id } })
|
||||||
return ResponseMapper.delete()
|
return ResponseMapper.delete()
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { PublicWithToken } from '@/common/decorators/withToken.decorator'
|
||||||
import { Controller, Get } from '@nestjs/common'
|
import { Controller, Get } from '@nestjs/common'
|
||||||
import { EnumsService } from './enums.service'
|
import { EnumsService } from './enums.service'
|
||||||
|
|
||||||
@@ -6,86 +7,103 @@ export class EnumsController {
|
|||||||
constructor(private readonly enumsService: EnumsService) {}
|
constructor(private readonly enumsService: EnumsService) {}
|
||||||
|
|
||||||
@Get('gold_karat')
|
@Get('gold_karat')
|
||||||
|
@PublicWithToken()
|
||||||
async getGoldKarat() {
|
async getGoldKarat() {
|
||||||
return this.enumsService.getEnumValues('GoldKarat')
|
return this.enumsService.getEnumValues('GoldKarat')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('user_status')
|
@Get('user_status')
|
||||||
|
@PublicWithToken()
|
||||||
async getUserStatus() {
|
async getUserStatus() {
|
||||||
return this.enumsService.getEnumValues('UserStatus')
|
return this.enumsService.getEnumValues('UserStatus')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('account_role')
|
@Get('account_role')
|
||||||
|
@PublicWithToken()
|
||||||
async getAccountRole() {
|
async getAccountRole() {
|
||||||
return this.enumsService.getEnumValues('AccountRole')
|
return this.enumsService.getEnumValues('AccountRole')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('account_status')
|
@Get('account_status')
|
||||||
|
@PublicWithToken()
|
||||||
async getAccountStatus() {
|
async getAccountStatus() {
|
||||||
return this.enumsService.getEnumValues('AccountStatus')
|
return this.enumsService.getEnumValues('AccountStatus')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('pos_status')
|
@Get('pos_status')
|
||||||
|
@PublicWithToken()
|
||||||
async getPOSStatus() {
|
async getPOSStatus() {
|
||||||
return this.enumsService.getEnumValues('POSStatus')
|
return this.enumsService.getEnumValues('POSStatus')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('pos_role')
|
@Get('pos_role')
|
||||||
|
@PublicWithToken()
|
||||||
async getPOSRole() {
|
async getPOSRole() {
|
||||||
return this.enumsService.getEnumValues('POSRole')
|
return this.enumsService.getEnumValues('POSRole')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('license_type')
|
@Get('license_type')
|
||||||
|
@PublicWithToken()
|
||||||
async getLicenseType() {
|
async getLicenseType() {
|
||||||
return this.enumsService.getEnumValues('LicenseType')
|
return this.enumsService.getEnumValues('LicenseType')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('license_status')
|
@Get('license_status')
|
||||||
|
@PublicWithToken()
|
||||||
async getLicenseStatus() {
|
async getLicenseStatus() {
|
||||||
return this.enumsService.getEnumValues('LicenseStatus')
|
return this.enumsService.getEnumValues('LicenseStatus')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('pos_type')
|
@Get('pos_type')
|
||||||
|
@PublicWithToken()
|
||||||
async getPOSType() {
|
async getPOSType() {
|
||||||
return this.enumsService.getEnumValues('POSType')
|
return this.enumsService.getEnumValues('POSType')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('user_type')
|
@Get('user_type')
|
||||||
|
@PublicWithToken()
|
||||||
async getUserType() {
|
async getUserType() {
|
||||||
return this.enumsService.getEnumValues('UserType')
|
return this.enumsService.getEnumValues('UserType')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('account_type')
|
@Get('account_type')
|
||||||
|
@PublicWithToken()
|
||||||
async getAccountType() {
|
async getAccountType() {
|
||||||
return this.enumsService.getEnumValues('AccountType')
|
return this.enumsService.getEnumValues('AccountType')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('partner_role')
|
@Get('partner_role')
|
||||||
|
@PublicWithToken()
|
||||||
async getPartnerRole() {
|
async getPartnerRole() {
|
||||||
return this.enumsService.getEnumValues('PartnerRole')
|
return this.enumsService.getEnumValues('PartnerRole')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('business_role')
|
@Get('business_role')
|
||||||
|
@PublicWithToken()
|
||||||
async getBusinessRole() {
|
async getBusinessRole() {
|
||||||
return this.enumsService.getEnumValues('BusinessRole')
|
return this.enumsService.getEnumValues('BusinessRole')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('provider_role')
|
@Get('provider_role')
|
||||||
|
@PublicWithToken()
|
||||||
async getProviderRole() {
|
async getProviderRole() {
|
||||||
return this.enumsService.getEnumValues('ProviderRole')
|
return this.enumsService.getEnumValues('ProviderRole')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('token_type')
|
@Get('token_type')
|
||||||
|
@PublicWithToken()
|
||||||
async getTokenType() {
|
async getTokenType() {
|
||||||
return this.enumsService.getEnumValues('TokenType')
|
return this.enumsService.getEnumValues('TokenType')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('unit_type')
|
@Get('unit_type')
|
||||||
|
@PublicWithToken()
|
||||||
async getUnitType() {
|
async getUnitType() {
|
||||||
return this.enumsService.getEnumValues('UnitType')
|
return this.enumsService.getEnumValues('UnitType')
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('good_pricing_model')
|
@Get('good_pricing_model')
|
||||||
|
@PublicWithToken()
|
||||||
async getGoodPricingModel() {
|
async getGoodPricingModel() {
|
||||||
return this.enumsService.getEnumValues('GoodPricingModel')
|
return this.enumsService.getEnumValues('GoodPricingModel')
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user