From 0a8c6d70f5e471d01a891c4248e4b7b807ecf79c Mon Sep 17 00:00:00 2001 From: crisog Date: Thu, 26 Dec 2024 08:43:02 -0400 Subject: [PATCH] feat: export data-vault & process payment types --- src/azul-api/api.ts | 2 +- src/azul-api/data-vault/data-vault.ts | 3 +- src/azul-api/data-vault/schemas.ts | 40 ---------- src/azul-api/data-vault/types.ts | 42 +++++++++++ .../process-payment/process-payment.ts | 9 +-- src/azul-api/process-payment/schemas.ts | 71 ------------------ src/azul-api/process-payment/types.ts | 74 +++++++++++++++++++ src/index.ts | 2 + 8 files changed, 123 insertions(+), 120 deletions(-) create mode 100644 src/azul-api/data-vault/types.ts create mode 100644 src/azul-api/process-payment/types.ts diff --git a/src/azul-api/api.ts b/src/azul-api/api.ts index 029fdcc..f2c5575 100644 --- a/src/azul-api/api.ts +++ b/src/azul-api/api.ts @@ -8,7 +8,7 @@ import { import AzulRequester, { Config } from './request'; import DataVault from './data-vault/data-vault'; import ProcessPayment from './process-payment/process-payment'; -import { ProcessPaymentResponse } from './process-payment/schemas'; +import { ProcessPaymentResponse } from './process-payment/types'; import { Process } from './processes'; import { Secure } from './secure/secure'; diff --git a/src/azul-api/data-vault/data-vault.ts b/src/azul-api/data-vault/data-vault.ts index c66e4a8..60ba913 100644 --- a/src/azul-api/data-vault/data-vault.ts +++ b/src/azul-api/data-vault/data-vault.ts @@ -1,6 +1,7 @@ import { Process } from '../processes'; import AzulRequester from '../request'; -import { Create, CreateInput, DataVaultResponse } from './schemas'; +import { CreateInput, DataVaultResponse } from './types'; +import { Create } from './schemas'; enum DataVaultTransaction { CREATE = 'CREATE', diff --git a/src/azul-api/data-vault/schemas.ts b/src/azul-api/data-vault/schemas.ts index 2c683c9..29b23c7 100644 --- a/src/azul-api/data-vault/schemas.ts +++ b/src/azul-api/data-vault/schemas.ts @@ -20,43 +20,3 @@ export const Create = z.object({ */ CVC }); - -export type DataVaultResponse = Partial<{ - /** - * Marca de la tarjeta - */ - Brand: string; - /** - * Número de tarjeta enmascarada (ej. XXXXXX…XXXX). - */ - CardNumber: string; - /** - * Token generado por SDP. - */ - DataVaultToken: string; - /** - * Descripción del error. - * Valor sólo presente si la transacción produjo un error. En caso - * de no presentar error ese campo viaja en blanco - */ - ErrorDescription: string; - /** - * Fecha expiración del token. Formato YYYYMM - */ - Expiration: string; - /** - * Indica si el Token fue creado con CVV. - */ - HasCVV: boolean; - /** - * Código ISO-8583 recibido de respuesta. - * Cuando la transacción es exitosa se recibe el valor “00” - */ - IsoCode: string; - /** - * Mensaje de respuesta - */ - ResponseMessage: string; -}>; - -export type CreateInput = z.input; diff --git a/src/azul-api/data-vault/types.ts b/src/azul-api/data-vault/types.ts new file mode 100644 index 0000000..ec47cf8 --- /dev/null +++ b/src/azul-api/data-vault/types.ts @@ -0,0 +1,42 @@ +import { z } from 'zod'; +import { Create } from './schemas'; + +export type DataVaultResponse = Partial<{ + /** + * Marca de la tarjeta + */ + Brand: string; + /** + * Número de tarjeta enmascarada (ej. XXXXXX…XXXX). + */ + CardNumber: string; + /** + * Token generado por SDP. + */ + DataVaultToken: string; + /** + * Descripción del error. + * Valor sólo presente si la transacción produjo un error. En caso + * de no presentar error ese campo viaja en blanco + */ + ErrorDescription: string; + /** + * Fecha expiración del token. Formato YYYYMM + */ + Expiration: string; + /** + * Indica si el Token fue creado con CVV. + */ + HasCVV: boolean; + /** + * Código ISO-8583 recibido de respuesta. + * Cuando la transacción es exitosa se recibe el valor “00” + */ + IsoCode: string; + /** + * Mensaje de respuesta + */ + ResponseMessage: string; +}>; + +export type CreateInput = z.input; diff --git a/src/azul-api/process-payment/process-payment.ts b/src/azul-api/process-payment/process-payment.ts index 93025ed..b20e6f0 100644 --- a/src/azul-api/process-payment/process-payment.ts +++ b/src/azul-api/process-payment/process-payment.ts @@ -1,11 +1,6 @@ import AzulRequester from '../request'; -import { - ProcessPaymentResponse, - ProcessPaymentSchemaInput, - ProcessPaymentSchema, - RefundSchemaInput, - RefundSchema -} from './schemas'; +import { ProcessPaymentSchema, RefundSchema } from './schemas'; +import { ProcessPaymentResponse, ProcessPaymentSchemaInput, RefundSchemaInput } from './types'; export enum ProcessPaymentTransaction { SALE = 'Sale', diff --git a/src/azul-api/process-payment/schemas.ts b/src/azul-api/process-payment/schemas.ts index 8447d66..1835117 100644 --- a/src/azul-api/process-payment/schemas.ts +++ b/src/azul-api/process-payment/schemas.ts @@ -135,75 +135,6 @@ export const RefundRequestSchema = z }) .merge(ProcessPaymentSchema); -export type ProcessPaymentResponse = Partial<{ - /** - * Código de autorización generado por el centro autorizador para la - * transacción. - * Sólo presente si la transacción fue aprobada. ISOCode = ISO8583 y - * ResponseCode = 00 - */ - AuthorizationCode: string; - /** - * Numero Identificador dada por el afiliado a la transacción. Si no - * fue provisto en la transacción, este campo viaja en blanco - */ - CustomOrderId: string; - /** - * Fecha y hora de la transacción. - * Formato YYYYMMDDHHMMSS. - */ - DateTime: string; - /** - * Descripción del error. - * Valor sólo presente si la transacción produjo un error. En caso de - * no presentar error ese campo viaja en blanco - */ - ErrorDescription: string; - /** - * Código ISO-8583 recibido de respuesta. - * Nota: En la documentación de Azul, este campo se llama ISOCode - */ - IsoCode: string; - /** - * Número de lote en que se registró la transacción - */ - LotNumber: string; - /** - * Número de referencia - * (Reference referral number). - */ - RRN: string; - /** - * Número de orden Azul. Puede ser usado en vez del RRN para generar una - * devolución. Importante dar prioridad a este valor sobre el RRN. - */ - AzulOrderId: string; - /** - * Código de respuesta. - * Puede contener uno de los siguientes valores: - * Iso8583 = la transacción fue procesada. Se debe revisar el - * campo ISOCode para ver la respuesta de la transacción Error = - * La transacción no fue procesada. - */ - ResponseCode: 'ISO8583' | 'Error'; - /** - * Mensaje de respuesta ISO-8583. - * Valor sólo presente si el ResponseCode = ISO8583 - */ - ResponseMessage: string; - /** - * Número del ticket correspondiente a la transacción - */ - Ticket: string; - /** - * Tarjeta usada para la transacción, enmascarada - * (XXXXXX******XXXX) - */ - CardNumber: string; -}>; - -export type ProcessPaymentSchemaInput = z.input; - export const RefundSchema = z.object({ /** * Canal de pago. @@ -314,5 +245,3 @@ export const RefundSchema = z.object({ */ azulOrderId: z.string() }); - -export type RefundSchemaInput = z.input; diff --git a/src/azul-api/process-payment/types.ts b/src/azul-api/process-payment/types.ts new file mode 100644 index 0000000..2acff19 --- /dev/null +++ b/src/azul-api/process-payment/types.ts @@ -0,0 +1,74 @@ +import { ProcessPaymentSchema } from './schemas'; +import { z } from 'zod'; +import { RefundSchema } from './schemas'; + +export type ProcessPaymentResponse = Partial<{ + /** + * Código de autorización generado por el centro autorizador para la + * transacción. + * Sólo presente si la transacción fue aprobada. ISOCode = ISO8583 y + * ResponseCode = 00 + */ + AuthorizationCode: string; + /** + * Numero Identificador dada por el afiliado a la transacción. Si no + * fue provisto en la transacción, este campo viaja en blanco + */ + CustomOrderId: string; + /** + * Fecha y hora de la transacción. + * Formato YYYYMMDDHHMMSS. + */ + DateTime: string; + /** + * Descripción del error. + * Valor sólo presente si la transacción produjo un error. En caso de + * no presentar error ese campo viaja en blanco + */ + ErrorDescription: string; + /** + * Código ISO-8583 recibido de respuesta. + * Nota: En la documentación de Azul, este campo se llama ISOCode + */ + IsoCode: string; + /** + * Número de lote en que se registró la transacción + */ + LotNumber: string; + /** + * Número de referencia + * (Reference referral number). + */ + RRN: string; + /** + * Número de orden Azul. Puede ser usado en vez del RRN para generar una + * devolución. Importante dar prioridad a este valor sobre el RRN. + */ + AzulOrderId: string; + /** + * Código de respuesta. + * Puede contener uno de los siguientes valores: + * Iso8583 = la transacción fue procesada. Se debe revisar el + * campo ISOCode para ver la respuesta de la transacción Error = + * La transacción no fue procesada. + */ + ResponseCode: 'ISO8583' | 'Error'; + /** + * Mensaje de respuesta ISO-8583. + * Valor sólo presente si el ResponseCode = ISO8583 + */ + ResponseMessage: string; + /** + * Número del ticket correspondiente a la transacción + */ + Ticket: string; + /** + * Tarjeta usada para la transacción, enmascarada + * (XXXXXX******XXXX) + */ + CardNumber: string; +}>; + +export type ProcessPaymentSchemaInput = z.input; + +export type RefundSchemaInput = z.input; diff --git a/src/index.ts b/src/index.ts index 49978e4..951bb30 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,3 +3,5 @@ import AzulAPI from './azul-api/api'; export { AzulPage, AzulAPI }; export * from './azul-api/secure/types'; +export * from './azul-api/process-payment/types'; +export * from './azul-api/data-vault/types';