diff --git a/src/lib/core.ts b/src/lib/core.ts index 4dce599..641322b 100644 --- a/src/lib/core.ts +++ b/src/lib/core.ts @@ -3,6 +3,7 @@ import { Client } from './client'; import { API_BASE_URL } from './constants'; import { AccountsManager, + ApiKeysManager, ChargesManager, CheckoutSessionsManager, InvoicesManager, @@ -15,6 +16,7 @@ import { SubscriptionsManager, TaxReturnsManager, WebhookEndpointsManager, + WhoamiManager, } from './managers'; import { AccountNumbersManager, @@ -81,6 +83,8 @@ export class Fintoc { subscriptionIntents: SubscriptionIntentsManager; taxReturns: TaxReturnsManager; webhookEndpoints: WebhookEndpointsManager; + apiKeys: ApiKeysManager; + whoami: WhoamiManager; v2: FintocV2; constructor(apiKey: string, jwsPrivateKey?: string) { @@ -103,6 +107,8 @@ export class Fintoc { this.subscriptionIntents = new SubscriptionIntentsManager('/v1/subscription_intents', this.#client); this.taxReturns = new TaxReturnsManager('/v1/tax_returns', this.#client); this.webhookEndpoints = new WebhookEndpointsManager('/v1/webhook_endpoints', this.#client); + this.apiKeys = new ApiKeysManager('/v1/api_keys', this.#client); + this.whoami = new WhoamiManager('/v1', this.#client); this.v2 = new FintocV2(this.#client); } diff --git a/src/lib/managers/apiKeysManager.ts b/src/lib/managers/apiKeysManager.ts new file mode 100644 index 0000000..092705b --- /dev/null +++ b/src/lib/managers/apiKeysManager.ts @@ -0,0 +1,7 @@ +import { ManagerMixin } from '../mixins'; +import { ApiKey } from '../resources/apiKey'; + +export class ApiKeysManager extends ManagerMixin { + static resource = 'api_key'; + static methods = ['list']; +} diff --git a/src/lib/managers/index.ts b/src/lib/managers/index.ts index a342e3e..58f84d1 100644 --- a/src/lib/managers/index.ts +++ b/src/lib/managers/index.ts @@ -12,3 +12,5 @@ export * from './subscriptionIntentsManager'; export * from './subscriptionsManager'; export * from './taxReturnsManager'; export * from './webhookEndpointsManager'; +export * from './apiKeysManager'; +export * from './whoamiManager'; diff --git a/src/lib/managers/whoamiManager.ts b/src/lib/managers/whoamiManager.ts new file mode 100644 index 0000000..b4281d4 --- /dev/null +++ b/src/lib/managers/whoamiManager.ts @@ -0,0 +1,7 @@ +import { ManagerMixin } from '../mixins'; +import { Whoami } from '../resources/whoami'; + +export class WhoamiManager extends ManagerMixin { + static resource = 'whoami'; + static methods = ['get']; +} diff --git a/src/lib/resources/apiKey.ts b/src/lib/resources/apiKey.ts new file mode 100644 index 0000000..8642ef1 --- /dev/null +++ b/src/lib/resources/apiKey.ts @@ -0,0 +1,4 @@ +import { ResourceMixin } from '../mixins/resourceMixin'; + +export class ApiKey extends ResourceMixin { +} diff --git a/src/lib/resources/whoami.ts b/src/lib/resources/whoami.ts new file mode 100644 index 0000000..186c034 --- /dev/null +++ b/src/lib/resources/whoami.ts @@ -0,0 +1,4 @@ +import { ResourceMixin } from '../mixins/resourceMixin'; + +export class Whoami extends ResourceMixin { +} diff --git a/src/spec/integration.spec.ts b/src/spec/integration.spec.ts index 654ce32..ccf4d59 100644 --- a/src/spec/integration.spec.ts +++ b/src/spec/integration.spec.ts @@ -1338,3 +1338,25 @@ test('fintoc.v2.products.create()', async (t) => { t.is(product.json.name, productData.name); t.is(product.json.currency, productData.currency); }); + +test('fintoc.apiKeys.list()', async (t) => { + const ctx: any = t.context; + const apiKeys = await ctx.fintoc.apiKeys.list(); + + let count = 0; + for await (const apiKey of apiKeys) { + count += 1; + t.is(apiKey.method, 'get'); + t.is(apiKey.url, 'v1/api_keys'); + } + + t.true(count > 0); +}); + +test('fintoc.whoami.get()', async (t) => { + const ctx: any = t.context; + const whoami = await ctx.fintoc.whoami.get('whoami'); + + t.is(whoami.method, 'get'); + t.is(whoami.url, 'v1/whoami'); +});