Skip to main content
Glama
get_code.rs1.27 kB
use axum::{ Json, extract::{ OriginalUri, Path, Query, }, }; use dal::{ ChangeSetId, FuncId, WorkspacePk, }; use serde::{ Deserialize, Serialize, }; use si_frontend_types::FuncCode; use super::{ FuncAPIResult, get_code_response, }; use crate::{ extract::{ HandlerContext, PosthogClient, }, service::v2::AccessBuilder, }; // TODO: find the right way to pass a Vec<FuncId> // the API call uses the `id[]=<...>&id[]=<...?` format // but that doesn't work here with Rust #[derive(Deserialize, Serialize, Debug)] #[serde(rename_all = "camelCase")] pub struct GetRequest { pub id: FuncId, } pub async fn get_code( HandlerContext(builder): HandlerContext, AccessBuilder(access_builder): AccessBuilder, PosthogClient(_posthog_client): PosthogClient, OriginalUri(_original_uri): OriginalUri, Path((_workspace_pk, change_set_id)): Path<(WorkspacePk, ChangeSetId)>, Query(request): Query<GetRequest>, ) -> FuncAPIResult<Json<Vec<FuncCode>>> { let ctx = builder .build(access_builder.build(change_set_id.into())) .await?; let mut funcs = Vec::new(); funcs.push(get_code_response(&ctx, request.id).await?); Ok(Json(funcs)) }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/systeminit/si'

If you have feedback or need assistance with the MCP directory API, please join our Discord server