update get status of tsp provider

This commit is contained in:
2026-05-27 22:44:01 +03:30
parent 816c5ebb50
commit cd3492d625
9 changed files with 116 additions and 164 deletions
+45 -1
View File
@@ -1,7 +1,12 @@
import { CustomerType, PaymentMethodType } from '@/generated/prisma/enums'
import {
CustomerType,
PaymentMethodType,
TspProviderResponseStatus,
} from '@/generated/prisma/enums'
import { ApiProperty } from '@nestjs/swagger'
import { Type } from 'class-transformer'
import {
IsBoolean,
IsDateString,
IsEnum,
IsNumber,
@@ -127,3 +132,42 @@ export class goldTypePayload {
@IsString()
commission: string
}
export class ProviderCommonResponse {
@ApiProperty({ enum: TspProviderResponseStatus })
@IsEnum(TspProviderResponseStatus)
status: TspProviderResponseStatus
@ApiProperty({ required: false, nullable: true, type: Object })
@IsOptional()
@IsObject()
provider_response?: Object
@ApiProperty({ required: true })
@IsBoolean()
hasError: boolean
@ApiProperty({ required: false, nullable: true })
@IsOptional()
@IsString()
message?: string | null
@ApiProperty({ required: false, nullable: true })
@IsOptional()
@IsString()
error_message?: string
@ApiProperty({ required: false, nullable: true, type: Object })
@IsOptional()
@IsObject()
fiscal_warnings?: Object
@ApiProperty({ required: false, nullable: true, type: Object })
@IsOptional()
@IsObject()
validation_errors?: Object
@ApiProperty({ required: true })
@IsDateString()
received_at: string
}
+7 -37
View File
@@ -1,42 +1,12 @@
import { TspProviderResponseStatus } from '@/generated/prisma/enums'
import { ApiProperty } from '@nestjs/swagger'
import {
IsBoolean,
IsDateString,
IsEnum,
IsObject,
IsOptional,
IsString,
} from 'class-validator'
export class TspProviderGetResultDto {
@ApiProperty()
@IsString()
tax_id: string
import { ApiProperty, OmitType } from '@nestjs/swagger'
import { IsEnum } from 'class-validator'
import { ProviderCommonResponse } from './common.dto'
export class TspProviderGetResponseDto extends OmitType(ProviderCommonResponse, [
'status',
]) {
@ApiProperty({ enum: TspProviderResponseStatus })
@IsEnum(TspProviderResponseStatus)
status: TspProviderResponseStatus
@ApiProperty({ required: true })
@IsBoolean()
hasError: boolean
@ApiProperty({ required: false, nullable: true })
@IsOptional()
@IsString()
message?: string | null
@ApiProperty({ required: false, nullable: true, type: Object })
@IsOptional()
@IsObject()
provider_response_payload?: Object
@ApiProperty({ required: true })
@IsDateString()
sent_at: string
@ApiProperty({ required: true })
@IsDateString()
received_at: string
status?: TspProviderResponseStatus
}
+7 -41
View File
@@ -1,14 +1,12 @@
import {
InvoiceSettlementType,
InvoiceTemplateType,
TspProviderResponseStatus,
TspProviderType,
} from '@/generated/prisma/enums'
import { ApiProperty } from '@nestjs/swagger'
import { Type } from 'class-transformer'
import {
IsArray,
IsBoolean,
IsDateString,
IsEnum,
IsNumber,
@@ -17,7 +15,12 @@ import {
IsString,
ValidateNested,
} from 'class-validator'
import { CustomerInfoDto, goldTypePayload, PaymentInfoDto } from './common.dto'
import {
CustomerInfoDto,
goldTypePayload,
PaymentInfoDto,
ProviderCommonResponse,
} from './common.dto'
export class TspProviderOriginalItemPayloadDto {
@ApiProperty({ required: true })
@@ -133,15 +136,11 @@ export class TspProviderOriginalSendPayloadDto {
payments: PaymentInfoDto[]
}
export class TspProviderOriginalSendItemResultDto {
export class TspProviderOriginalResponseDto extends ProviderCommonResponse {
@ApiProperty()
@IsString()
invoice_id: string
@ApiProperty({ enum: TspProviderResponseStatus })
@IsEnum(TspProviderResponseStatus)
status: TspProviderResponseStatus
@ApiProperty({ required: false, nullable: true })
@IsOptional()
@IsString()
@@ -157,37 +156,4 @@ export class TspProviderOriginalSendItemResultDto {
@ValidateNested({ each: true })
@Type(() => TspProviderOriginalSendPayloadDto)
provider_request_payload: TspProviderOriginalSendPayloadDto
@ApiProperty({ required: false, nullable: true, type: Object })
@IsOptional()
@IsObject()
provider_response?: Object
@ApiProperty({ required: true })
@IsBoolean()
hasError: boolean
@ApiProperty({ required: false, nullable: true })
@IsOptional()
@IsString()
message?: string | null
@ApiProperty({ required: false, nullable: true })
@IsOptional()
@IsString()
error_message?: string
@ApiProperty({ required: false, nullable: true, type: Object })
@IsOptional()
@IsObject()
fiscal_warnings?: Object
@ApiProperty({ required: false, nullable: true, type: Object })
@IsOptional()
@IsObject()
validation_errors?: Object
@ApiProperty({ required: true })
@IsDateString()
received_at: string
}
@@ -6,9 +6,9 @@ import {
TspProviderCorrectionSendPayloadDto,
TspProviderCorrectionSendResponseDto,
} from './correction.dto'
import { TspProviderGetResultDto } from './get.dto'
import { TspProviderGetResponseDto } from './get.dto'
import {
TspProviderOriginalSendItemResultDto,
TspProviderOriginalResponseDto,
TspProviderOriginalSendPayloadDto,
} from './original.dto'
import { TspProviderRevokePayloadDto, TspProviderRevokeResponseDto } from './revoke.dto'
@@ -18,11 +18,11 @@ export class TspProviderBulkSendResultDto {
@IsString()
invoice_id: string
@ApiProperty({ type: [TspProviderOriginalSendItemResultDto] })
@ApiProperty({ type: [TspProviderOriginalResponseDto] })
@IsArray()
@ValidateNested({ each: true })
@Type(() => TspProviderOriginalSendItemResultDto)
items: TspProviderOriginalSendItemResultDto[]
@Type(() => TspProviderOriginalResponseDto)
items: TspProviderOriginalResponseDto[]
}
export class TspProviderActionResponseDto {
@@ -40,13 +40,13 @@ export interface IProviderSwitchAdapter {
readonly code: string
originalSend(
payload: TspProviderOriginalSendPayloadDto,
): Promise<TspProviderOriginalSendItemResultDto>
): Promise<TspProviderOriginalResponseDto>
sendBulk(
payloads: TspProviderOriginalSendPayloadDto[],
): Promise<TspProviderBulkSendResultDto[]>
correctionSend(
payload: TspProviderCorrectionSendPayloadDto,
): Promise<TspProviderCorrectionSendResponseDto>
get(invoiceId: string, tsp_token: string): Promise<TspProviderGetResultDto>
get(invoiceId: string, tsp_token: string): Promise<TspProviderGetResponseDto>
revoke(payload: TspProviderRevokePayloadDto): Promise<TspProviderRevokeResponseDto>
}