UNPKG

@alextomas80/api-client-grupeta

Version:

Cliente API Grupeta CBR

70 lines (69 loc) 3.14 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getUpcomingRoutes = exports.getCalendar = void 0; const date_fns_1 = require("date-fns"); const config_1 = require("../config"); const axios_1 = __importDefault(require("./axios")); const mapCalendar = (data) => { const items = data.data.map(({ id, title, description, date, route, status }) => { return { date, description, documentId: id, route, title, status, }; }); return items; }; const fetchEvents = (path) => __awaiter(void 0, void 0, void 0, function* () { const ACCESS_TOKEN = (0, config_1.getApiToken)(); const axiosStrava = (0, axios_1.default)(ACCESS_TOKEN); const { data } = yield axiosStrava.get(path); const calendar = mapCalendar(data); return { calendar, }; }); const getCalendar = (_a) => __awaiter(void 0, [_a], void 0, function* ({ fields = "*", limit = 10, page = 0, }) { try { const filters = `limit=${limit}${page ? `&page=${page}` : ""}`; const { calendar } = yield fetchEvents(`/items/calendar?${filters}&fields=${fields}`); return calendar; } catch (error) { console.error("Error al obtener eventos del calendario:", error); throw new Error("Error al obtener eventos del calendario."); } }); exports.getCalendar = getCalendar; const getUpcomingRoutes = (_a) => __awaiter(void 0, [_a], void 0, function* ({ fields = "*", limit = 10, page = 0, sort = "date", }) { try { // Obtener la fecha actual const today = new Date(); const tomorrow = (0, date_fns_1.format)((0, date_fns_1.addDays)(today, 1), "yyyy-MM-dd"); // Crear los filtros para obtener solo las rutas futuras const pageQuery = page ? `&page=${page}` : ""; const filters = [`limit=${limit}`, `filter[date][_gte]=${tomorrow}`, `sort=${sort}`, pageQuery].join("&"); const { calendar } = yield fetchEvents(`/items/calendar?${filters}&fields=${fields}`); return calendar; } catch (error) { console.error("Error al obtener eventos del calendario:", error); throw new Error("Error al obtener eventos del calendario."); } }); exports.getUpcomingRoutes = getUpcomingRoutes;