33 lines
1.4 KiB
JavaScript
33 lines
1.4 KiB
JavaScript
import axios from "axios";
|
|
import { LOCAL_SERVER_URL, getLocalServerHeaders } from "../config/index.js";
|
|
|
|
/**
|
|
* Resuelve info de un proyecto contra el server Python local.
|
|
*
|
|
* @param {string|Object} projectName - nombre del proyecto o query object (ej. { project_dir })
|
|
* @param {string|null} acaiUser - usuario Acai propietario del proyecto. Si se pasa,
|
|
* se reenvia como header `X-Acai-User` para aislar la busqueda a
|
|
* `/opt/acai/webs/<user>/`. Nginx valida el secret y añade este header
|
|
* automaticamente; en modo stdio no se propaga y la logica original se
|
|
* mantiene.
|
|
*/
|
|
export async function fetchProjectInfo(projectName, acaiUser = null) {
|
|
const params = typeof projectName === "string" ? { project: projectName } : (projectName || {});
|
|
const headers = getLocalServerHeaders();
|
|
if (acaiUser) headers["X-Acai-User"] = acaiUser;
|
|
const response = await axios.get(`${LOCAL_SERVER_URL}/api/project-info`, {
|
|
params,
|
|
headers,
|
|
});
|
|
return response.data; // { success, web_url, token, tokenHash, domain, project_dir }
|
|
}
|
|
|
|
export async function fetchProjectsList(acaiUser = null) {
|
|
const headers = getLocalServerHeaders();
|
|
if (acaiUser) headers["X-Acai-User"] = acaiUser;
|
|
const response = await axios.get(`${LOCAL_SERVER_URL}/api/mcp/projects`, {
|
|
headers,
|
|
});
|
|
return response.data; // { success, projects: [...] }
|
|
}
|