feat(projects): invite members to projects
This commit is contained in:
@@ -1,11 +1,18 @@
|
||||
import { RawAxiosRequestConfig } from "axios";
|
||||
import { DefaultApi as InfisicalApi } from "../infisicalapi_client";
|
||||
import type { ApiV2WorkspacePost200Response, ApiV2WorkspacePostRequest } from "../infisicalapi_client";
|
||||
import type {
|
||||
ApiV2WorkspacePost200Response,
|
||||
ApiV2WorkspacePostRequest,
|
||||
ApiV2WorkspaceProjectIdMembershipsPost200Response,
|
||||
ApiV2WorkspaceProjectIdMembershipsPostRequest
|
||||
} from "../infisicalapi_client";
|
||||
import { newInfisicalError } from "./errors";
|
||||
|
||||
export type CreateProjectOptions = ApiV2WorkspacePostRequest;
|
||||
export type CreateProjectResult = ApiV2WorkspacePost200Response;
|
||||
|
||||
export type InviteMemberToProjectOptions = { projectId: string } & ApiV2WorkspaceProjectIdMembershipsPostRequest;
|
||||
export type InviteMemberToProjectResult = ApiV2WorkspaceProjectIdMembershipsPost200Response;
|
||||
export default class ProjectsClient {
|
||||
#apiInstance: InfisicalApi;
|
||||
#requestOptions: RawAxiosRequestConfig | undefined;
|
||||
@@ -27,4 +34,23 @@ export default class ProjectsClient {
|
||||
throw newInfisicalError(err);
|
||||
}
|
||||
};
|
||||
|
||||
inviteMembers = async (options: InviteMemberToProjectOptions): Promise<InviteMemberToProjectResult["memberships"]> => {
|
||||
try {
|
||||
if (!options.usernames?.length && !options.emails?.length) {
|
||||
throw new Error("Either usernames or emails must be provided");
|
||||
}
|
||||
|
||||
const res = await this.#apiInstance.apiV2WorkspaceProjectIdMembershipsPost(
|
||||
{
|
||||
projectId: options.projectId,
|
||||
apiV2WorkspaceProjectIdMembershipsPostRequest: options
|
||||
},
|
||||
this.#requestOptions
|
||||
);
|
||||
return res.data.memberships;
|
||||
} catch (err) {
|
||||
throw newInfisicalError(err);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user