blob: c73007e8b75693735a57ba0e1b657438a3ef712d (
plain) (
tree)
|
|
//! Contract types API handler.
use axum::{http::StatusCode, response::IntoResponse, Json};
use serde::Serialize;
use utoipa::ToSchema;
use crate::llm::templates;
use crate::llm::templates::ContractTypeTemplate;
// =============================================================================
// Contract Type Templates (Workflow Definitions)
// =============================================================================
/// Response for listing contract types
#[derive(Debug, Serialize, ToSchema)]
#[serde(rename_all = "camelCase")]
pub struct ListContractTypesResponse {
pub contract_types: Vec<ContractTypeTemplate>,
}
/// List all available contract type templates
#[utoipa::path(
get,
path = "/api/v1/contract-types",
responses(
(status = 200, description = "Contract types retrieved successfully", body = ListContractTypesResponse)
),
tag = "templates"
)]
pub async fn list_contract_types() -> impl IntoResponse {
let contract_types = templates::all_contract_types();
(
StatusCode::OK,
Json(ListContractTypesResponse { contract_types }),
)
.into_response()
}
|