From bdeeafd8e76c39b1433d1f7df176d37837f31faf Mon Sep 17 00:00:00 2001 From: Anoop Varghese Date: Thu, 8 Nov 2018 12:09:03 +1100 Subject: [PATCH 1/2] add some types --- index.d.ts | 44 ++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + yarn.lock | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 index.d.ts diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..b44e72d --- /dev/null +++ b/index.d.ts @@ -0,0 +1,44 @@ +import request = require('request-promise'); +import Requester from './src/Requester'; + +export interface Config { + +} + +type Response = request.RequestPromise; + +export class Requester { + request(uri, params, method): Response; + post(uri, params): Response; + get(uri, params): Response; + patch(uri, params): Response; + delete(uri): Response; + log(message): void; +} + +export class Http { + create(data): Response; + list(data): Response; + get(id: string): Response; + update(data, id: string): Response; +} + +export class User extends Http { + getBankAccount(id: string): Response; + getCardAccount(id: string): Response; + getPaypalAccount(id: string): Response; + getWalletAccount(id: string): Response; + setDisbursementAccount(id: string, accountId: string): Response; + listItems(id: string): Response; +}; + +export type Company = Http + +export interface Promisepay { + users: User; + companies: Company; +} + +declare module 'node-promisepay' { + export default function (config: Config) : Promisepay; +}; diff --git a/package.json b/package.json index 3afa28e..53ead95 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "request-promise": "^4.1.0" }, "devDependencies": { + "@types/request-promise": "^4.1.42", "babel-core": "^6.23.0", "babel-eslint": "^7.1.0", "babel-plugin-transform-async-to-module-method": "^6.22.0", diff --git a/yarn.lock b/yarn.lock index 4c60405..3751934 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,44 @@ # yarn lockfile v1 +"@types/bluebird@*": + version "3.5.24" + resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.24.tgz#11f76812531c14f793b8ecbf1de96f672905de8a" + +"@types/caseless@*": + version "0.12.1" + resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.1.tgz#9794c69c8385d0192acc471a540d1f8e0d16218a" + +"@types/form-data@*": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-2.2.1.tgz#ee2b3b8eaa11c0938289953606b745b738c54b1e" + dependencies: + "@types/node" "*" + +"@types/node@*": + version "10.12.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.3.tgz#3918b73ceed484e58367be5acb79d1775239e393" + +"@types/request-promise@^4.1.42": + version "4.1.42" + resolved "https://registry.yarnpkg.com/@types/request-promise/-/request-promise-4.1.42.tgz#a70a6777429531e60ed09faa077ead9b995204cd" + dependencies: + "@types/bluebird" "*" + "@types/request" "*" + +"@types/request@*": + version "2.48.1" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.1.tgz#e402d691aa6670fbbff1957b15f1270230ab42fa" + dependencies: + "@types/caseless" "*" + "@types/form-data" "*" + "@types/node" "*" + "@types/tough-cookie" "*" + +"@types/tough-cookie@*": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-2.3.4.tgz#821878b81bfab971b93a265a561d54ea61f9059f" + abbrev@1, abbrev@1.0.x: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" From fe9a5e3f0f88b2ac9d00fc00e5ee5fe3cd997dc6 Mon Sep 17 00:00:00 2001 From: Anoop Varghese Date: Fri, 9 Nov 2018 11:52:32 +1100 Subject: [PATCH 2/2] more types --- index.d.ts | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 119 insertions(+), 4 deletions(-) diff --git a/index.d.ts b/index.d.ts index b44e72d..0233eae 100644 --- a/index.d.ts +++ b/index.d.ts @@ -7,6 +7,12 @@ export interface Config { type Response = request.RequestPromise; +export interface ListArgs { + limit: number; + offset: number; + search?: string; +} + export class Requester { request(uri, params, method): Response; post(uri, params): Response; @@ -16,14 +22,14 @@ export class Requester { log(message): void; } -export class Http { +export interface Http { create(data): Response; - list(data): Response; + list(data: ListArgs): Response; get(id: string): Response; update(data, id: string): Response; } -export class User extends Http { +export interface User extends Http { getBankAccount(id: string): Response; getCardAccount(id: string): Response; getPaypalAccount(id: string): Response; @@ -32,7 +38,116 @@ export class User extends Http { listItems(id: string): Response; }; -export type Company = Http +export interface BankAccount extends Http { + getUsers(id: string): Response; + verifyRoutingNumber(number: number): Response; +} + +export interface CardAccount extends Http { + getUsers(id: string): Response; +} + +export interface PaypalAccount extends Http {} + +export interface DirectDebitAuthority extends Http {} + +interface FeeArgs { + name: string; + fee_type_id: string; + amount: number; + cap: number; + min: number; + max: number; + to: string; +} +export interface Fee extends Http { + create(params: FeeArgs): Response; + list(params: ListArgs): Response; +} + +interface ItemUpdateArgs { + name: string; + amount: number; + fee_ids: Array; + description: string; + buyer_id: string; + seller_id: string; +}; + +interface ItemListArgs extends ListArgs { + disbursement_id: string; +} +export interface Item extends Http { + list(params: ItemListArgs): Response; + update(id: string, data: ItemUpdateArgs): Response; + deleteFees(id: string): Response; + status(id: string): Response; + getBuyers(id: string): Response; + getSellers(id: string): Response; + getFees(id: string): Response; + getWireDetails(id: string): Response; + getBPayDetails(id: string): Response; + getTransactions(id: string): Response; + getBatchTransactions(id: string): Response; +} + +// Payment +interface MakePaymentArgs { + account_id: string; + ip_address: string; + device_id: string; +} + + +interface RequestReleaseArgs { + release_amount: number; +} + +interface RequestRefundArgs { + refund_amount: number; + refund_message: string; +} + +interface RefundArgs { + refund_amount: number; + refund_message: string; +} + +interface RaiseDisputeArgs { + user_id: string; +} + +export interface ItemAction extends Http { + triggerAction(action: string, itemId: string, params: any): Response; + requestPayment(itemId: string): Response; + makePayment(itemId: string, params: MakePaymentArgs): Response; + requestRelease(itemId: string, params: RequestReleaseArgs): Response; + requestRefund(itemId: string, params: RequestRefundArgs): Response; + refund(itemId: string, params: RefundArgs): Response; + declineRefund(itemId: string): Response; + raiseDispute(itemId, params: RaiseDisputeArgs): Response; + requestDisputeResolution(itemId: string): Response; + resolveDispute(itemId: string): Response; + escalateDispute(itemId: string): Response; + acknowledgeWireTransfer(itemId: string): Response; + revertWireTransfer(itemId: string): Response; + cancel(itemId: string): Response; + sendTaxInvoice(itemId: string): Response; + requestTaxInvoice(itemId: string): Response; +} + +interface WalletArgs { + account_id: string; + amount: number; +} + +export interface WalletAccount extends Http { + withdraw(id: string, params: WalletArgs): Response; + deposit(id: string, params: WalletArgs): Response; + getUser(id: string): Response; +} + +export interface Company extends Http {} export interface Promisepay { users: User;