Skip to main content
Glama

MCP Pedidos

by reyesbho
services.ts4.99 kB
import { Pagination, Pedido, Producto, Size } from "../interfaces/models.js"; // Variables de entorno para autenticación export const API_EMAIL = process.env.API_EMAIL || ''; export const API_PASSWORD = process.env.API_PASSWORD || ''; export const API_BASE_URL = process.env.API_BASE_URL || ''; /** * Autentica con la API y obtiene el token JWT */ export const authenticate = async(): Promise<string | null> => { let authToken = ''; try { console.log("🔐 Iniciando autenticación..."); const response = await fetch(`${API_BASE_URL}/user/login`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ email: API_EMAIL, password: API_PASSWORD }) }); if (response.ok) { // Extraer token de las cookies const cookies = response.headers.get('set-cookie'); if (cookies) { const tokenMatch = cookies.match(/access_token=([^;]+)/); if (tokenMatch) { authToken = tokenMatch[1]; console.log("✅ Autenticación exitosa"); return authToken; } } // Si no hay cookies, intentar obtener del body try { const data = await response.json(); if (data.token) { authToken = data.token; console.log("✅ Autenticación exitosa"); return authToken; } } catch (e) { // Ignorar errores de parsing JSON } console.error("❌ Token no encontrado en la respuesta"); return null; } else { console.error(`❌ Error en autenticación: ${response.status}`); return null; } } catch (error) { console.error(`❌ Error durante autenticación: ${error}`); return null; } } /** * Obtiene todos los productos activos */ export const fetchGetProductos = async(authToken: string): Promise<Producto[]> => { try { console.log("🛍️ Obteniendo productos..."); const response = await fetch(`${API_BASE_URL}/api/products?estatus=ACTIVO`, { method: 'GET', headers: { 'Content-Type': 'application/json', 'Cookie': `access_token=${authToken}` } }); if (response.ok) { const productos = await response.json(); console.log(`✅ Obtenidos ${productos.length || 0} productos`); return productos || []; } else { console.error(`❌ Error obteniendo productos: ${response.status}`); return []; } } catch (error) { console.error(`❌ Error obteniendo productos: ${error}`); return []; } } /** * Obtiene todos los tamaños disponibles */ export const fetchGetSizes =async(authToken: string): Promise<Size[]> => { try { console.log("📏 Obteniendo tamaños..."); const response = await fetch(`${API_BASE_URL}/api/sizes`, { method: 'GET', headers: { 'Content-Type': 'application/json', 'Cookie': `access_token=${authToken}` } }); if (response.ok) { const sizes = await response.json(); console.log(`✅ Obtenidos ${sizes.length || 0} tamaños`); return sizes || []; } else { console.error(`❌ Error obteniendo tamaños: ${response.status}`); return []; } } catch (error) { console.error(`❌ Error obteniendo tamaños: ${error}`); return []; } } /** * Obtiene todos los tamaños disponibles */ export const fetchGetPedidos =async(authToken: string, statusFilter:string,dateInit:string | null, dateEnd:String | null, pagination:Pagination ): Promise<Pedido[]> => { try { console.log("📏 Obteniendo pedidos..."); const response = await fetch(`${API_BASE_URL}/api/pedidos?`+ `estatus=${statusFilter}&pageSize=${pagination.pageSize}`+ (dateInit?`&fechaInicio=${dateInit}`:'')+ (dateEnd?`&fechaFin=${dateEnd}`:''), { method: 'GET', headers: { 'Content-Type': 'application/json', 'Cookie': `access_token=${authToken}` } }); if (response.ok) { const pedidos = await response.json(); console.log(`✅ Obtenidos ${pedidos.length || 0} pedidos`); return pedidos || []; } else { console.error(`❌ Error obteniendo pedidos: ${response.status}`); return []; } } catch (error) { console.error(`❌ Error obteniendo pedidos: ${error}`); return []; } }

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/reyesbho/mcp-moments'

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