Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 40 additions & 6 deletions resources/authorization.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,23 @@ export class Authorizations extends BaseResource {
}

public async find(params?: AuthorizationQueryParams): Promise<UnitResponse<Authorization[]>> {
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<UnitResponse<Authorization[]>>("", { params: parameters })
}
}
Expand Down Expand Up @@ -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
}
52 changes: 32 additions & 20 deletions resources/payments.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ export class Payments extends BaseResource {
super(token, basePath + "/payments", config)
}

public async create(request: CreatePaymentRequest) : Promise<UnitResponse<Payment>> {
return this.httpPost<UnitResponse<Payment>>("",{data: request})
public async create(request: CreatePaymentRequest): Promise<UnitResponse<Payment>> {
return this.httpPost<UnitResponse<Payment>>("", { data: request })
}

public async update(id: string, request: PatchPaymentRequest) : Promise<UnitResponse<Payment>> {
return this.httpPatch<UnitResponse<Payment>>(`/${id}`, {data: request})
public async update(id: string, request: PatchPaymentRequest): Promise<UnitResponse<Payment>> {
return this.httpPatch<UnitResponse<Payment>>(`/${id}`, { data: request })
}

public async cancel(id: string) : Promise<UnitResponse<Payment>> {
Expand All @@ -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<UnitResponse<Payment & Include<Account[] | Customer[] | Transaction[]>>> {
const params = {include : include ? `include=${include}` : ""}
return this.httpGet<UnitResponse<Payment & Include<Account[] | Customer[] | Transaction[]>>>(`/${id}`,{params})
public async get(id: string, include?: string): Promise<UnitResponse<Payment & Include<Account[] | Customer[] | Transaction[]>>> {
const params = { include: include ? `include=${include}` : "" }
return this.httpGet<UnitResponse<Payment & Include<Account[] | Customer[] | Transaction[]>>>(`/${id}`, { params })
}

public async list(params?: PaymentListParams) : Promise<UnitResponse<Payment[] & Include<Account[] | Customer[] | Transaction[]>>> {
const parameters = {
public async list(params?: PaymentListParams): Promise<UnitResponse<Payment[] & Include<Account[] | Customer[] | Transaction[]>>> {
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<UnitResponse<Payment[] & Include<Account[] | Customer[] | Transaction[]>>>("", {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<UnitResponse<Payment[] & Include<Account[] | Customer[] | Transaction[]>>>("", { params: parameters })
}
}

Expand Down Expand Up @@ -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
*/
Expand Down
24 changes: 21 additions & 3 deletions resources/transactions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export class Transactions extends BaseResource {
}

public async list(params?: TransactionListParams): Promise<UnitResponse<Transaction[]> & Include<Account[] | Customer[]>> {
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 }),
Expand All @@ -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<UnitResponse<Transaction[]> & Include<Account[] | Customer[]>>("/transactions", {params: parameters})
if (params?.type)
params.type.forEach((t, idx) => {
parameters[`filter[type][${idx}]`] = t
})

return await this.httpGet<UnitResponse<Transaction[]> & Include<Account[] | Customer[]>>("/transactions", { params: parameters })
}

/**
Expand All @@ -61,7 +67,7 @@ export class Transactions extends BaseResource {
}
}

return await this.httpPatch<UnitResponse<Transaction>>(`/accounts/${accountId}/transactions/${transactionId}`, {data})
return await this.httpPatch<UnitResponse<Transaction>>(`/accounts/${accountId}/transactions/${transactionId}`, { data })
}
}

Expand Down Expand Up @@ -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)
Expand Down