trello_fake/lib/projectsService.ts

37 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

2026-01-09 17:39:19 +00:00
// lib/projectsService.ts
import { dolibarrFetch } from "./dolibarrClient";
2026-01-09 17:39:19 +00:00
import { DolibarrProject, Project, mapDolibarrProject } from "@/types/project";
2026-01-09 17:39:19 +00:00
// Obtener proyectos crudos de Dolibarr
export async function getDolibarrProjects(): Promise<DolibarrProject[]> {
return dolibarrFetch("projects");
}
2026-01-09 17:39:19 +00:00
// Obtener proyectos mapeados al formato de la UI
export async function getProjects(): Promise<Project[]> {
try {
const dolibarrProjects = await getDolibarrProjects();
// Mapear los proyectos de Dolibarr a nuestro formato
return dolibarrProjects.map(mapDolibarrProject);
} catch (error) {
console.error('Error fetching projects from Dolibarr:', error);
throw error;
}
}
// Obtener un proyecto específico por ID
export async function getProjectById(id: number): Promise<Project | undefined> {
try {
const projects = await getProjects();
return projects.find(p => p.id === id);
} catch (error) {
console.error('Error fetching project by id:', error);
throw error;
}
}
// Si necesitas obtener un proyecto específico directamente de Dolibarr
export async function getDolibarrProjectById(id: number): Promise<DolibarrProject> {
return dolibarrFetch(`projects/${id}`);
}