From 3b3b71d84192cc195f4626d6294b34d788641215 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Thu, 7 Mar 2019 10:58:27 -0500 Subject: [PATCH] apis for org api keys --- src/abstractions/api.service.ts | 3 +++ src/models/response/apiKeyResponse.ts | 10 ++++++++++ src/services/api.service.ts | 11 +++++++++++ 3 files changed, 24 insertions(+) create mode 100644 src/models/response/apiKeyResponse.ts diff --git a/src/abstractions/api.service.ts b/src/abstractions/api.service.ts index 3de4ffce014..8b20fc0fd51 100644 --- a/src/abstractions/api.service.ts +++ b/src/abstractions/api.service.ts @@ -52,6 +52,7 @@ import { VerifyBankRequest } from '../models/request/verifyBankRequest'; import { VerifyDeleteRecoverRequest } from '../models/request/verifyDeleteRecoverRequest'; import { VerifyEmailRequest } from '../models/request/verifyEmailRequest'; +import { ApiKeyResponse } from '../models/response/apiKeyResponse'; import { BillingResponse } from '../models/response/billingResponse'; import { BreachAccountResponse } from '../models/response/breachAccountResponse'; import { CipherResponse } from '../models/response/cipherResponse'; @@ -235,6 +236,8 @@ export abstract class ApiService { postLeaveOrganization: (id: string) => Promise; postOrganizationLicense: (data: FormData) => Promise; postOrganizationLicenseUpdate: (id: string, data: FormData) => Promise; + postOrganizationApiKey: (id: string, request: PasswordVerificationRequest) => Promise; + postOrganizationRotateApiKey: (id: string, request: PasswordVerificationRequest) => Promise; postOrganizationSeat: (id: string, request: SeatRequest) => Promise; postOrganizationStorage: (id: string, request: StorageRequest) => Promise; postOrganizationPayment: (id: string, request: PaymentRequest) => Promise; diff --git a/src/models/response/apiKeyResponse.ts b/src/models/response/apiKeyResponse.ts new file mode 100644 index 00000000000..b530b2dcc3e --- /dev/null +++ b/src/models/response/apiKeyResponse.ts @@ -0,0 +1,10 @@ +import { BaseResponse } from './baseResponse'; + +export class ApiKeyResponse extends BaseResponse { + apiKey: string; + + constructor(response: any) { + super(response); + this.apiKey = this.getResponseProperty('ApiKey'); + } +} diff --git a/src/services/api.service.ts b/src/services/api.service.ts index f7ecedba82d..36622409a90 100644 --- a/src/services/api.service.ts +++ b/src/services/api.service.ts @@ -58,6 +58,7 @@ import { VerifyBankRequest } from '../models/request/verifyBankRequest'; import { VerifyDeleteRecoverRequest } from '../models/request/verifyDeleteRecoverRequest'; import { VerifyEmailRequest } from '../models/request/verifyEmailRequest'; +import { ApiKeyResponse } from '../models/response/apiKeyResponse'; import { BillingResponse } from '../models/response/billingResponse'; import { BreachAccountResponse } from '../models/response/breachAccountResponse'; import { CipherResponse } from '../models/response/cipherResponse'; @@ -767,6 +768,16 @@ export class ApiService implements ApiServiceAbstraction { return this.send('POST', '/organizations/' + id + '/license', data, true, false); } + async postOrganizationApiKey(id: string, request: PasswordVerificationRequest): Promise { + const r = await this.send('POST', '/organizations/' + id + '/api-key', request, true, true); + return new ApiKeyResponse(r); + } + + async postOrganizationRotateApiKey(id: string, request: PasswordVerificationRequest): Promise { + const r = await this.send('POST', '/organizations/' + id + '/rotate-api-key', request, true, true); + return new ApiKeyResponse(r); + } + postOrganizationSeat(id: string, request: SeatRequest): Promise { return this.send('POST', '/organizations/' + id + '/seat', request, true, false); }