t1-api-client
Version:
Cliente Node.js para la API T1Comercios. Permite autenticar, gestionar productos, subir archivos, consultar catálogos y pedidos.
65 lines (60 loc) • 3.19 kB
JavaScript
/**
* @file src/index.js
* @description Punto de entrada principal del paquete (módulo público).
* Centraliza y re-exporta los servicios disponibles (autenticación, productos,
* archivos, catálogos y órdenes) para facilitar su importación desde
* aplicaciones cliente. Antes de consumir cualquier servicio que requiera
* autorización, es indispensable establecer sesión mediante `auth.login()` y
* conservar/propagar el token gestionado internamente por el cliente HTTP.
*
* Uso típico:
* const t1 = require('t1-api-client');
* await t1.auth.login({ username, password });
* const lista = await t1.products.list();
*
* Este módulo no ejecuta lógica adicional (no side-effects) al ser cargado.
*/
// ANCHOR: imports-servicios
// SECTION: importacion-servicios
// INFO: Se importan los módulos de servicios especializados. Cada servicio encapsula
// INFO: operaciones específicas contra el API remoto (principio de responsabilidad única).
// NOTE: Mantener rutas relativas sincronizadas si se reestructura la carpeta `services`.
const auth = require('./services/authService'); // Servicio de autenticación
const products = require('./services/productService'); // Servicio de productos
const files = require('./services/fileService'); // Servicio de archivos
const catalogs = require('./services/catalogService'); // Servicio de catálogos
const orders = require('./services/orderService'); // Servicio de órdenes
// ANCHOR: export-agrupado-servicios
/**
* Objeto agregador de servicios T1.
* @type {{
* auth: import('./services/authService'),
* products: import('./services/productService'),
* files: import('./services/fileService'),
* catalogs: import('./services/catalogService'),
* orders: import('./services/orderService')
* }}
* @property {import('./services/authService')} auth Servicio de autenticación y gestión de token. Debe invocarse primero (login / refresh) antes de usar otros servicios que requieran autorización.
* @property {import('./services/productService')} products Servicio para operaciones sobre productos.
* @property {import('./services/fileService')} files Servicio para manejo de archivos.
* @property {import('./services/catalogService')} catalogs Servicio para interacción con catálogos.
* @property {import('./services/orderService')} orders Servicio para operaciones sobre órdenes/pedidos.
* @exports auth
* @exports products
* @exports files
* @exports catalogs
* @exports orders
* @see ./services/authService
* @see ./services/productService
* @see ./services/fileService
* @see ./services/catalogService
* @see ./services/orderService
* @example
* const { auth, products } = require('t1-api-client');
* await auth.login({ user: 'demo', password: 'secret' });
* const listado = await products.list();
*/
module.exports = { auth, products, files, catalogs, orders };
// NOTE: Si se añaden nuevos servicios, importarlos arriba y agregarlos al objeto exportado.
// TODO: Considerar exponer tipos / interfaces (TypeScript) en una versión futura para mejorar autocompletado.
// OPTIMIZE: Podría evaluarse lazy-loading de servicios si su inicialización futura implica sobrecarga.