From 2433b0d7b24559640e6344cfdcd0ff41ed567cdc Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Sat, 19 Feb 2022 11:43:10 +0100 Subject: [PATCH] fix(core): update --- test/test.nonci.ts | 7 +++++-- ts/tink.classes.tinkaccount.ts | 8 -------- ts/tink.classes.tinkuser.ts | 34 ++++++++++++++++++++++++---------- 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/test/test.nonci.ts b/test/test.nonci.ts index 37d56e7..eaeab3d 100644 --- a/test/test.nonci.ts +++ b/test/test.nonci.ts @@ -19,8 +19,11 @@ tap.test('should report tink as healthy', async () => { await expectAsync(tinkTestAccount.getTinkHealthyBoolean()).toBeTrue(); }); -tap.test('should create a valid request', async () => { - await tinkTestAccount.createTinkUser("user_1234_abc"); +tap.test('should create a valid request', async (toolsArg) => { + const tinkuser = await tinkTestAccount.createTinkUser("user_1234_abc"); + console.log(await tinkuser.getTinkLink()); + process.exit(0); + await toolsArg.delayFor(10000); }) tap.test('should delete existing users', async () => { diff --git a/ts/tink.classes.tinkaccount.ts b/ts/tink.classes.tinkaccount.ts index 8b903d9..010a985 100644 --- a/ts/tink.classes.tinkaccount.ts +++ b/ts/tink.classes.tinkaccount.ts @@ -130,14 +130,6 @@ export class TinkAccount { return userAccessToken; } - public async getTinkLinkCode(externalUserIdArg: string) { - const authorizationCode = this.getUserAuthorizationCode( - externalUserIdArg, - 'df05e4b379934cd09963197cc855bfe9', - 'authorization:read,authorization:grant,credentials:refresh,credentials:read,credentials:write,providers:read,user:read' - ); - } - // the request method for tink respecting platform specific stuff // e.g. certain headers if needed public async request(optionsArg: { diff --git a/ts/tink.classes.tinkuser.ts b/ts/tink.classes.tinkuser.ts index bc37f6a..b8b4278 100644 --- a/ts/tink.classes.tinkuser.ts +++ b/ts/tink.classes.tinkuser.ts @@ -4,20 +4,20 @@ import { TinkAccount } from './tink.classes.tinkaccount'; export class TinkUser { // STATIC - public static async createNewTinkUser (tinkaccountArg: TinkAccount, externalUserIdArg: string) { + public static async createNewTinkUser(tinkaccountArg: TinkAccount, externalUserIdArg: string) { const accessToken = await tinkaccountArg.getClientAccessTokenForScope('user:create'); const response = await tinkaccountArg.request({ urlArg: '/api/v1/user/create', accessToken, methodArg: 'POST', payloadArg: { - "external_user_id": externalUserIdArg, - "market": "GB", - "locale": "en_US" - } + external_user_id: externalUserIdArg, + market: 'DE', + locale: 'en_US', + }, }); - const newTinkUser = new TinkUser (tinkaccountArg, response.user_id, response.external_user_id); + const newTinkUser = new TinkUser(tinkaccountArg, response.user_id, response.external_user_id); return newTinkUser; } @@ -26,7 +26,7 @@ export class TinkUser { public tinkUserId: string; public externalUserIdArg: string; - public authorizationToken: string + public authorizationToken: string; constructor(tinkAccountrefArg: TinkAccount, tinkUserIdArg: string, externalUserIdArg: string) { this.tinkAccountRef = tinkAccountrefArg; @@ -38,14 +38,28 @@ export class TinkUser { * deletes the user */ public async delete() { - const authorizationCode = await this.tinkAccountRef.getUserAuthorizationCode(this.externalUserIdArg, this.tinkAccountRef.clientId, 'user:delete'); + const authorizationCode = await this.tinkAccountRef.getUserAuthorizationCode( + this.externalUserIdArg, + this.tinkAccountRef.clientId, + 'user:delete' + ); const accessToken = await this.tinkAccountRef.getUserAccessToken(authorizationCode); const response = await this.tinkAccountRef.request({ methodArg: 'POST', accessToken, payloadArg: {}, - urlArg: '/api/v1/user/delete' + urlArg: '/api/v1/user/delete', }); console.log(`successfully deleted user with externalId ${this.externalUserIdArg}`); } -} \ No newline at end of file + + public async getTinkLink(): Promise { + const authorizationCode = await this.tinkAccountRef.getUserAuthorizationCode( + this.externalUserIdArg, + 'df05e4b379934cd09963197cc855bfe9', // this is a hardcoded app id for tink link, as recommended by tink.com + 'authorization:read,authorization:grant,credentials:refresh,credentials:read,credentials:write,providers:read,user:read' + ); + const tinkLinkUrl = `https://link.tink.com/1.0/business-transactions/connect-accounts?client_id=${'teststate'}&redirect_uri=https://console.tink.com/callback&authorization_code=${authorizationCode}&market=DE`; + return tinkLinkUrl; + } +}