1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-14 15:23:33 +00:00

[Provider] Add initial support for providers (#399)

This commit is contained in:
Oscar Hinton
2021-07-15 15:07:38 +02:00
committed by GitHub
parent c9b13e4d1b
commit 9f0ca7e4d2
34 changed files with 680 additions and 5 deletions

View File

@@ -55,6 +55,15 @@ import { PasswordVerificationRequest } from '../models/request/passwordVerificat
import { PaymentRequest } from '../models/request/paymentRequest';
import { PolicyRequest } from '../models/request/policyRequest';
import { PreloginRequest } from '../models/request/preloginRequest';
import { ProviderAddOrganizationRequest } from '../models/request/provider/providerAddOrganizationRequest';
import { ProviderSetupRequest } from '../models/request/provider/providerSetupRequest';
import { ProviderUpdateRequest } from '../models/request/provider/providerUpdateRequest';
import { ProviderUserAcceptRequest } from '../models/request/provider/providerUserAcceptRequest';
import { ProviderUserBulkConfirmRequest } from '../models/request/provider/providerUserBulkConfirmRequest';
import { ProviderUserBulkRequest } from '../models/request/provider/providerUserBulkRequest';
import { ProviderUserConfirmRequest } from '../models/request/provider/providerUserConfirmRequest';
import { ProviderUserInviteRequest } from '../models/request/provider/providerUserInviteRequest';
import { ProviderUserUpdateRequest } from '../models/request/provider/providerUserUpdateRequest';
import { RegisterRequest } from '../models/request/registerRequest';
import { SeatRequest } from '../models/request/seatRequest';
import { SelectionReadOnlyRequest } from '../models/request/selectionReadOnlyRequest';
@@ -81,6 +90,7 @@ import { VerifyDeleteRecoverRequest } from '../models/request/verifyDeleteRecove
import { VerifyEmailRequest } from '../models/request/verifyEmailRequest';
import { Utils } from '../misc/utils';
import { ApiKeyResponse } from '../models/response/apiKeyResponse';
import { AttachmentResponse } from '../models/response/attachmentResponse';
import { AttachmentUploadDataResponse } from '../models/response/attachmentUploadDataResponse';
@@ -123,6 +133,14 @@ import { PlanResponse } from '../models/response/planResponse';
import { PolicyResponse } from '../models/response/policyResponse';
import { PreloginResponse } from '../models/response/preloginResponse';
import { ProfileResponse } from '../models/response/profileResponse';
import { ProviderOrganizationOrganizationDetailsResponse } from '../models/response/provider/providerOrganizationResponse';
import { ProviderResponse } from '../models/response/provider/providerResponse';
import { ProviderUserBulkPublicKeyResponse } from '../models/response/provider/providerUserBulkPublicKeyResponse';
import { ProviderUserBulkResponse } from '../models/response/provider/providerUserBulkResponse';
import {
ProviderUserResponse,
ProviderUserUserDetailsResponse
} from '../models/response/provider/providerUserResponse';
import { SelectionReadOnlyResponse } from '../models/response/selectionReadOnlyResponse';
import { SendAccessResponse } from '../models/response/sendAccessResponse';
import { SendFileDownloadDataResponse } from '../models/response/sendFileDownloadDataResponse';
@@ -1230,6 +1248,101 @@ export class ApiService implements ApiServiceAbstraction {
return new OrganizationKeysResponse(r);
}
// Provider APIs
async postProviderSetup(id: string, request: ProviderSetupRequest) {
const r = await this.send('POST', '/providers/' + id + '/setup', request, true, true);
return new ProviderResponse(r);
}
async getProvider(id: string) {
const r = await this.send('GET', '/providers/' + id, null, true, true);
return new ProviderResponse(r);
}
async putProvider(id: string, request: ProviderUpdateRequest) {
const r = await this.send('PUT', '/providers/' + id, request, true, true);
return new ProviderResponse(r);
}
// Provider User APIs
async getProviderUsers(providerId: string): Promise<ListResponse<ProviderUserUserDetailsResponse>> {
const r = await this.send('GET', '/providers/' + providerId + '/users', null, true, true);
return new ListResponse(r, ProviderUserUserDetailsResponse);
}
async getProviderUser(providerId: string, id: string): Promise<ProviderUserResponse> {
const r = await this.send('GET', '/providers/' + providerId + '/users/' + id, null, true, true);
return new ProviderUserResponse(r);
}
postProviderUserInvite(providerId: string, request: ProviderUserInviteRequest): Promise<any> {
return this.send('POST', '/providers/' + providerId + '/users/invite', request, true, false);
}
postProviderUserReinvite(providerId: string, id: string): Promise<any> {
return this.send('POST', '/providers/' + providerId + '/users/' + id + '/reinvite', null, true, false);
}
async postManyProviderUserReinvite(providerId: string, request: ProviderUserBulkRequest): Promise<ListResponse<ProviderUserBulkResponse>> {
const r = await this.send('POST', '/providers/' + providerId + '/users/reinvite', request, true, true);
return new ListResponse(r, ProviderUserBulkResponse);
}
async postProviderUserBulkConfirm(providerId: string, request: ProviderUserBulkConfirmRequest): Promise<ListResponse<ProviderUserBulkResponse>> {
const r = await this.send('POST', '/providers/' + providerId + '/users/confirm', request, true, true);
return new ListResponse(r, ProviderUserBulkResponse);
}
async deleteManyProviderUsers(providerId: string, request: ProviderUserBulkRequest): Promise<ListResponse<ProviderUserBulkResponse>> {
const r = await this.send('DELETE', '/providers/' + providerId + '/users', request, true, true);
return new ListResponse(r, ProviderUserBulkResponse);
}
postProviderUserAccept(providerId: string, id: string, request: ProviderUserAcceptRequest): Promise<any> {
return this.send('POST', '/providers/' + providerId + '/users/' + id + '/accept', request, true, false);
}
postProviderUserConfirm(providerId: string, id: string, request: ProviderUserConfirmRequest): Promise<any> {
return this.send('POST', '/providers/' + providerId + '/users/' + id + '/confirm',
request, true, false);
}
async postProviderUsersPublicKey(providerId: string, request: ProviderUserBulkRequest): Promise<ListResponse<ProviderUserBulkPublicKeyResponse>> {
const r = await this.send('POST', '/providers/' + providerId + '/users/public-keys', request, true, true);
return new ListResponse(r, ProviderUserBulkPublicKeyResponse);
}
putProviderUser(providerId: string, id: string, request: ProviderUserUpdateRequest): Promise<any> {
return this.send('PUT', '/providers/' + providerId + '/users/' + id, request, true, false);
}
deleteProviderUser(providerId: string, id: string): Promise<any> {
return this.send('DELETE', '/providers/' + providerId + '/users/' + id, null, true, false);
}
// Provider Organization APIs
async getProviderClients(providerId: string): Promise<ListResponse<ProviderOrganizationOrganizationDetailsResponse>> {
const r = await this.send('GET', '/providers/' + providerId + '/organizations', null, true, true);
return new ListResponse(r, ProviderOrganizationOrganizationDetailsResponse);
}
postProviderAddOrganization(providerId: string, request: ProviderAddOrganizationRequest): Promise<any> {
return this.send('POST', '/providers/' + providerId + '/organizations/add', request, true, false);
}
async postProviderCreateOrganization(providerId: string, request: OrganizationCreateRequest): Promise<OrganizationResponse> {
const r = await this.send('POST', '/providers/' + providerId + '/organizations', request, true, true);
return new OrganizationResponse(r);
}
deleteProviderOrganization(providerId: string, id: string): Promise<any> {
return this.send('DELETE', '/providers/' + providerId + '/organizations/' + id, null, true, false);
}
// Event APIs
async getEvents(start: string, end: string, token: string): Promise<ListResponse<EventResponse>> {
@@ -1259,6 +1372,19 @@ export class ApiService implements ApiServiceAbstraction {
return new ListResponse(r, EventResponse);
}
async getEventsProvider(id: string, start: string, end: string, token: string): Promise<ListResponse<EventResponse>> {
const r = await this.send('GET', this.addEventParameters('/providers/' + id + '/events', start, end, token), null, true, true);
return new ListResponse(r, EventResponse);
}
async getEventsProviderUser(providerId: string, id: string,
start: string, end: string, token: string): Promise<ListResponse<EventResponse>> {
const r = await this.send('GET',
this.addEventParameters('/providers/' + providerId + '/users/' + id + '/events', start, end, token),
null, true, true);
return new ListResponse(r, EventResponse);
}
async postEventsCollect(request: EventRequest[]): Promise<any> {
const authHeader = await this.getActiveBearerToken();
const headers = new Headers({