70 lines · 2.2 KB · TypeScript
RawDownload
import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "@effect/platform";import {  CreateSecretPayloadSchema,  CreateSecretResultSchema,  DeleteSecretResultSchema,  InstanceConfigSchema,  SecretListItemSchema,  UpdateSecretPayloadSchema,  UpdateSecretResultSchema,} from "@executor/platform-sdk/contracts";import {  ControlPlaneBadRequestError,  ControlPlaneNotFoundError,  ControlPlaneStorageError,} from "@executor/platform-sdk/errors";import { LocalInstallationSchema } from "@executor/platform-sdk/schema";import * as Schema from "effect/Schema"; export type {  CreateSecretPayload,  CreateSecretResult,  DeleteSecretResult,  InstanceConfig,  SecretLinkedSource,  SecretListItem,  SecretProvider,  UpdateSecretPayload,  UpdateSecretResult,} from "@executor/platform-sdk/contracts"; export class LocalApi extends HttpApiGroup.make("local")  .add(    HttpApiEndpoint.get("installation")`/local/installation`      .addSuccess(LocalInstallationSchema)      .addError(ControlPlaneBadRequestError)      .addError(ControlPlaneNotFoundError)      .addError(ControlPlaneStorageError),  )  .add(    HttpApiEndpoint.get("config")`/local/config`      .addSuccess(InstanceConfigSchema)      .addError(ControlPlaneStorageError),  )  .add(    HttpApiEndpoint.get("listSecrets")`/local/secrets`      .addSuccess(Schema.Array(SecretListItemSchema))      .addError(ControlPlaneStorageError),  )  .add(    HttpApiEndpoint.post("createSecret")`/local/secrets`      .setPayload(CreateSecretPayloadSchema)      .addSuccess(CreateSecretResultSchema)      .addError(ControlPlaneBadRequestError)      .addError(ControlPlaneStorageError),  )  .add(    HttpApiEndpoint.patch("updateSecret")`/local/secrets/${HttpApiSchema.param("secretId", Schema.String)}`      .setPayload(UpdateSecretPayloadSchema)      .addSuccess(UpdateSecretResultSchema)      .addError(ControlPlaneBadRequestError)      .addError(ControlPlaneNotFoundError)      .addError(ControlPlaneStorageError),  )  .add(    HttpApiEndpoint.del("deleteSecret")`/local/secrets/${HttpApiSchema.param("secretId", Schema.String)}`      .addSuccess(DeleteSecretResultSchema)      .addError(ControlPlaneNotFoundError)      .addError(ControlPlaneStorageError),  )  .prefix("/v1") {}