feat: create folders, environments, and projects
This commit is contained in:
35
src/custom/folders.ts
Normal file
35
src/custom/folders.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import { RawAxiosRequestConfig } from "axios";
|
||||
import { DefaultApi as InfisicalApi } from "../infisicalapi_client";
|
||||
import type { ApiV1FoldersPostRequest, ApiV1FoldersPost200Response } from "../infisicalapi_client";
|
||||
import { newInfisicalError } from "./errors";
|
||||
|
||||
export type CreateFolderOptions = {
|
||||
projectId: string;
|
||||
} & Omit<ApiV1FoldersPostRequest, "workspaceId" | "directory">;
|
||||
export type CreateFolderResult = ApiV1FoldersPost200Response;
|
||||
|
||||
export default class FoldersClient {
|
||||
#apiInstance: InfisicalApi;
|
||||
#requestOptions: RawAxiosRequestConfig | undefined;
|
||||
constructor(apiInstance: InfisicalApi, requestOptions: RawAxiosRequestConfig | undefined) {
|
||||
this.#apiInstance = apiInstance;
|
||||
this.#requestOptions = requestOptions;
|
||||
}
|
||||
|
||||
create = async (options: CreateFolderOptions): Promise<CreateFolderResult["folder"]> => {
|
||||
try {
|
||||
const res = await this.#apiInstance.apiV1FoldersPost(
|
||||
{
|
||||
apiV1FoldersPostRequest: {
|
||||
...options,
|
||||
workspaceId: options.projectId
|
||||
}
|
||||
},
|
||||
this.#requestOptions
|
||||
);
|
||||
return res.data.folder;
|
||||
} catch (err) {
|
||||
throw newInfisicalError(err);
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user