diff --git a/resources/authorization.ts b/resources/authorization.ts index 8b7794db..47632597 100644 --- a/resources/authorization.ts +++ b/resources/authorization.ts @@ -13,14 +13,23 @@ export class Authorizations extends BaseResource { } public async find(params?: AuthorizationQueryParams): Promise> { - const parameters = { - "page[limit]": (params?.limit ? params?.limit : 100), - "page[offset]": (params?.offset ? params?.offset : 0), - ...(params?.accountId && { "filter[accountId]": params?.accountId }), - ...(params?.customerId && { "filter[customerId]": params?.customerId }), - ...(params?.cardId && { "filter[cardId]": params?.cardId }) + const parameters: any = { + "page[limit]": (params?.limit ? params.limit : 100), + "page[offset]": (params?.offset ? params.offset : 0), + ...(params?.accountId && { "filter[accountId]": params.accountId }), + ...(params?.customerId && { "filter[customerId]": params.customerId }), + ...(params?.cardId && { "filter[cardId]": params.cardId }), + ...(params?.since && { "filter[since]": params.since }), + ...(params?.until && { "filter[until]": params.until }), + ...(params?.includeNonAuthorized && { "filter[includeNonAuthorized]": params.includeNonAuthorized }), + ...(params?.sort && { "sort": params.sort }) } + if (params?.status) + params.status.forEach((s, idx) => { + parameters[`filter[status][${idx}]`] = s + }) + return this.httpGet>("", { params: parameters }) } } @@ -55,4 +64,29 @@ export interface AuthorizationQueryParams { * default: empty */ cardId?: string + + /** + * Optional. Filters the Authorizations that occurred after the specified date. e.g. 2020-01-13T16:01:19.346Z + */ + since?: string + + /** + * Optional. Filters the Authorizations that occurred before the specified date. e.g. 2020-01-02T20:06:23.486Z + */ + until?: string + + /** + * Optional. Include authorizations from all statuses. + */ + includeNonAuthorized?: boolean + + /** + * Optional. Filter authorizations by (Authorization Status)[https://docs.unit.co/cards-authorizations/#authorization-statuses]. + */ + status: string[] + + /** + * Optional. Leave empty or provide sort=createdAt for ascending order. Provide sort=-createdAt (leading minus sign) for descending order. + */ + sort?: string } diff --git a/resources/payments.ts b/resources/payments.ts index 9192d3e7..8f587fd0 100644 --- a/resources/payments.ts +++ b/resources/payments.ts @@ -10,12 +10,12 @@ export class Payments extends BaseResource { super(token, basePath + "/payments", config) } - public async create(request: CreatePaymentRequest) : Promise> { - return this.httpPost>("",{data: request}) + public async create(request: CreatePaymentRequest): Promise> { + return this.httpPost>("", { data: request }) } - public async update(id: string, request: PatchPaymentRequest) : Promise> { - return this.httpPatch>(`/${id}`, {data: request}) + public async update(id: string, request: PatchPaymentRequest): Promise> { + return this.httpPatch>(`/${id}`, { data: request }) } public async cancel(id: string) : Promise> { @@ -26,28 +26,40 @@ export class Payments extends BaseResource { * Optional. A comma-separated list of related resources to include in the response. * Related resources include: customer, account, transaction. See Getting Related Resources */ - public async get(id: string, include?: string) : Promise>> { - const params = {include : include ? `include=${include}` : ""} - return this.httpGet>>(`/${id}`,{params}) + public async get(id: string, include?: string): Promise>> { + const params = { include: include ? `include=${include}` : "" } + return this.httpGet>>(`/${id}`, { params }) } - public async list(params?: PaymentListParams) : Promise>> { - const parameters = { + public async list(params?: PaymentListParams): Promise>> { + const parameters: any = { "page[limit]": (params?.limit ? params.limit : 100), "page[offset]": (params?.offset ? params.offset : 0), ...(params?.accountId && { "filter[accountId]": params.accountId }), ...(params?.customerId && { "filter[customerId]": params.customerId }), ...(params?.tags && { "filter[tags]": params.tags }), - ...(params?.status && { "filter[status]": params.status}), - ...(params?.type && { "filter[type]": params.type}), - ...(params?.direction && { "filter[direction]": params.direction}), - ...(params?.since && { "filter[since]": params.since}), - ...(params?.until && { "filter[until]": params.until}), + ...(params?.since && { "filter[since]": params.since }), + ...(params?.until && { "filter[until]": params.until }), "sort": params?.sort ? params.sort : "-createdAt", "include": params?.include ? params.include : "" } - return this.httpGet>>("", {params: parameters}) + if (params?.type) + params.type.forEach((t, idx) => { + parameters[`filter[type][${idx}]`] = t + }) + + if (params?.status) + params.status.forEach((s, idx) => { + parameters[`filter[status][${idx}]`] = s + }) + + if (params?.direction) + params.direction.forEach((d, idx) => { + parameters[`filter[direction][${idx}]`] = d + }) + + return this.httpGet>>("", { params: parameters }) } } @@ -81,27 +93,27 @@ export interface PaymentListParams { * default: empty */ tags?: object - + /** * Optional. Filter Payments by [ACH Status](https://developers.unit.co/payments/#ach-status). */ - status?: string + status?: string[] /** * Optional. Filter Payments by Payment type. such as (ACHPayment, BookPayment, WirePayment or BillPayment). */ - type?: string + type?: string[] /** * Optional. Filter Payments by direction. such as (Debit, Credit). */ - direction?: string + direction?: string[] /** * Optional. Filters the Payments that occurred after the specified date. e.g. 2020-01-13T16:01:19.346Z */ since?: string - + /** * Optional. Filters the Payments that occurred before the specified date. e.g. 2020-01-02T20:06:23.486Z */ diff --git a/resources/transactions.ts b/resources/transactions.ts index 5271dc86..af6eb82a 100644 --- a/resources/transactions.ts +++ b/resources/transactions.ts @@ -29,7 +29,7 @@ export class Transactions extends BaseResource { } public async list(params?: TransactionListParams): Promise & Include> { - const parameters = { + const parameters: any = { "page[limit]": (params?.limit ? params.limit : 100), "page[offset]": (params?.offset ? params.offset : 0), ...(params?.accountId && { "filter[accountId]": params.accountId }), @@ -39,11 +39,17 @@ export class Transactions extends BaseResource { ...(params?.since && { "filter[since]": params.since }), ...(params?.until && { "filter[until]": params.until }), ...(params?.cardId && { "filter[cardId]": params.cardId }), + ...(params?.excludeFees && { "excludeFees": params.excludeFees }), "sort": params?.sort ? params.sort : "-createdAt", "include": params?.include ? params.include : "" } - return await this.httpGet & Include>("/transactions", {params: parameters}) + if (params?.type) + params.type.forEach((t, idx) => { + parameters[`filter[type][${idx}]`] = t + }) + + return await this.httpGet & Include>("/transactions", { params: parameters }) } /** @@ -61,7 +67,7 @@ export class Transactions extends BaseResource { } } - return await this.httpPatch>(`/accounts/${accountId}/transactions/${transactionId}`, {data}) + return await this.httpPatch>(`/accounts/${accountId}/transactions/${transactionId}`, { data }) } } @@ -128,6 +134,18 @@ export interface TransactionListParams { */ sort?: string + /** + * Optional. Filter Transactions by Transaction type. Possible values include: OriginatedAch, ReceivedAch, ReturnedAch, DishonoredAch, Book, + * Purchase, Atm, Fee, Reversal, CardTransaction, BatchRelease, Wire, Dispute, Adjustment, Interest, CheckDeposit, ReturnedCheckDeposit, PaymentCanceled. + * Usage example: filter[type][0]=OriginatedAch&filter[type][1]=ReceivedAch + */ + type?: string[] + + /** + * Optional. Filter Fee type Transactions. + */ + excludeFees: boolean + /** * Optional. A comma-separated list of related resources to include in the response. * Related resources include: customer, account. [See Getting Related Resources](https://developers.unit.co/#intro-getting-related-resources)