From c03e58237a54655fb324e1c06f83ec84f114cb4b Mon Sep 17 00:00:00 2001 From: John Fowler Date: Wed, 22 Feb 2023 17:40:03 -0600 Subject: [PATCH] Added types for user statements. --- src/interfaces/statement.ts | 69 +++++++++++++++++++++++++++++++++ src/lib/User.ts | 5 ++- types/interfaces/statement.d.ts | 64 ++++++++++++++++++++++++++++++ types/lib/User.d.ts | 5 ++- 4 files changed, 139 insertions(+), 4 deletions(-) create mode 100644 src/interfaces/statement.ts create mode 100644 types/interfaces/statement.d.ts diff --git a/src/interfaces/statement.ts b/src/interfaces/statement.ts new file mode 100644 index 0000000..86fafe7 --- /dev/null +++ b/src/interfaces/statement.ts @@ -0,0 +1,69 @@ +export interface IGetStatementsApiResponse { + error_code: string; + http_code: string; + limit: number; + page: number; + page_count: number; + statements_count: number; + statements: (IStatementObject|IInterestIncome1099)[], + success: boolean; +} + +/** + * {@link [Statement Object Details](https://docs.synapsefi.com/api-references/statements/statement-object-details)} + */ +export interface IStatementObject { + _id: string; + client: { + id: string; + name: string; + user_id: string; + }; + date_end: number; + date_start: number; + end_date: number; + ending_balance: number; + is_fee_node: boolean; + node: IStatementNode; + node_id: string; + opening_balance: number; + start_date: number; + subnet: IStatementSubnet; + type: string; + urls: { + csv: string; + json: string; + pdf: string; + }; + user_id: string; + user_name: string; +} + +export interface IStatementNode { + created_on: number; + currency: string; + nickname: string; + type: string; +} + +export interface IStatementSubnet { + account_num: string; + ach: string; + has_subnet: boolean; + wire: string; +} + + +/** + * {@link [Undocumented Object Details, but referenced in the 'type' property](https://docs.synapsefi.com/api-references/statements/statement-object-details)} + */ +export interface IInterestIncome1099 { + _id: string; + client_id: string; + date_end: number; + date_start: number; + link: string; + node_id: string; + type: string; + user_id: string; +} diff --git a/src/lib/User.ts b/src/lib/User.ts index e5fee8f..b476a70 100644 --- a/src/lib/User.ts +++ b/src/lib/User.ts @@ -7,6 +7,7 @@ import { IUserObject } from "../interfaces/user"; import { IgenECashBarcodePayload, IGetNodesApiResponse, INodeDetailsObject } from "../interfaces/node"; import { IDisputeTransactionPayload, IGetTransactionsApiResponse, ITransactionDetailsObject } from "../interfaces/transaction"; import { IGetShipmentsApiResponse, IGetSubnetsApiResponse, IShipmentObject, ISubnetDetailsObject } from "../interfaces/subnet"; +import { IGetStatementsApiResponse } from "../interfaces/statement"; class User { id: string; @@ -329,7 +330,7 @@ class User { */ getStatementsByUser( queryParams: IQueryParams = {} - ): Promise> { + ): Promise> { const { page, per_page } = queryParams; const { host, headers, id } = this; const originalUrl = `${host}/users/${id}/statements`; @@ -354,7 +355,7 @@ class User { getStatementsByNode( node_id: string, queryParams: IQueryParams = {} - ): Promise> { + ): Promise> { const { page, per_page } = queryParams; const { host, headers, id } = this; const originalUrl = `${host}/users/${id}/nodes/${node_id}/statements`; diff --git a/types/interfaces/statement.d.ts b/types/interfaces/statement.d.ts new file mode 100644 index 0000000..3d373ed --- /dev/null +++ b/types/interfaces/statement.d.ts @@ -0,0 +1,64 @@ +export interface IGetStatementsApiResponse { + error_code: string; + http_code: string; + limit: number; + page: number; + page_count: number; + statements_count: number; + statements: (IStatementObject | IInterestIncome1099)[]; + success: boolean; +} +/** + * {@link [Statement Object Details](https://docs.synapsefi.com/api-references/statements/statement-object-details)} + */ +export interface IStatementObject { + _id: string; + client: { + id: string; + name: string; + user_id: string; + }; + date_end: number; + date_start: number; + end_date: number; + ending_balance: number; + is_fee_node: boolean; + node: IStatementNode; + node_id: string; + opening_balance: number; + start_date: number; + subnet: IStatementSubnet; + type: string; + urls: { + csv: string; + json: string; + pdf: string; + }; + user_id: string; + user_name: string; +} +export interface IStatementNode { + created_on: number; + currency: string; + nickname: string; + type: string; +} +export interface IStatementSubnet { + account_num: string; + ach: string; + has_subnet: boolean; + wire: string; +} +/** + * {@link [Undocumented Object Details, but referenced in the 'type' property](https://docs.synapsefi.com/api-references/statements/statement-object-details)} + */ +export interface IInterestIncome1099 { + _id: string; + client_id: string; + date_end: number; + date_start: number; + link: string; + node_id: string; + type: string; + user_id: string; +} diff --git a/types/lib/User.d.ts b/types/lib/User.d.ts index fec23ba..7dbbdf9 100644 --- a/types/lib/User.d.ts +++ b/types/lib/User.d.ts @@ -5,6 +5,7 @@ import { IUserObject } from "../interfaces/user"; import { IgenECashBarcodePayload, IGetNodesApiResponse, INodeDetailsObject } from "../interfaces/node"; import { IDisputeTransactionPayload, IGetTransactionsApiResponse, ITransactionDetailsObject } from "../interfaces/transaction"; import { IGetShipmentsApiResponse, IGetSubnetsApiResponse, IShipmentObject, ISubnetDetailsObject } from "../interfaces/subnet"; +import { IGetStatementsApiResponse } from "../interfaces/statement"; declare class User { id: string; body: IUserObject; @@ -126,7 +127,7 @@ declare class User { * {@link [Statement Object Details](https://docs.synapsefi.com/api-references/statements/statement-object-details)} * {@link [View all user statements](https://docs.synapsefi.com/api-references/statements/view-all-user-statements)} */ - getStatementsByUser(queryParams?: IQueryParams): Promise>; + getStatementsByUser(queryParams?: IQueryParams): Promise>; /** * @description gets list of statement objects base on passed node id * @param queryParams @@ -135,7 +136,7 @@ declare class User { * {@link [Statement Object Details](https://docs.synapsefi.com/api-references/statements/statement-object-details)} * {@link [View all node statements](https://docs.synapsefi.com/api-references/statements/view-all-node-statements)} */ - getStatementsByNode(node_id: string, queryParams?: IQueryParams): Promise>; + getStatementsByNode(node_id: string, queryParams?: IQueryParams): Promise>; /** * @deprecated use `shipCard` instead */