credential.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { Credential } from "@opencode-ai/schema/credential"
  2. import { Schema } from "effect"
  3. import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi"
  4. import { LocationQuery, locationQueryOpenApi } from "./location"
  5. export const CredentialGroup = HttpApiGroup.make("server.credential")
  6. .add(
  7. HttpApiEndpoint.patch("credential.update", "/api/credential/:credentialID", {
  8. params: { credentialID: Credential.ID },
  9. query: LocationQuery,
  10. payload: Schema.Struct({ label: Schema.String }),
  11. success: HttpApiSchema.NoContent,
  12. })
  13. .annotateMerge(locationQueryOpenApi)
  14. .annotateMerge(
  15. OpenApi.annotations({
  16. identifier: "v2.credential.update",
  17. summary: "Update credential",
  18. description: "Update a stored credential label.",
  19. }),
  20. ),
  21. )
  22. .add(
  23. HttpApiEndpoint.delete("credential.remove", "/api/credential/:credentialID", {
  24. params: { credentialID: Credential.ID },
  25. query: LocationQuery,
  26. success: HttpApiSchema.NoContent,
  27. })
  28. .annotateMerge(locationQueryOpenApi)
  29. .annotateMerge(
  30. OpenApi.annotations({
  31. identifier: "v2.credential.remove",
  32. summary: "Remove credential",
  33. description: "Remove a stored integration credential.",
  34. }),
  35. ),
  36. )