UNPKG

@alextomas80/api-client-grupeta

Version:

Cliente API Grupeta CBR

104 lines (103 loc) 4.76 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.updateUser = exports.getCurrentUser = exports.isUserRegistered = void 0; const config_1 = require("../config"); const axios_1 = __importDefault(require("./axios")); const isUserRegistered = (_a) => __awaiter(void 0, [_a], void 0, function* ({ email }) { try { const ACCESS_TOKEN = (0, config_1.getApiToken)(); const axiosStrava = (0, axios_1.default)(ACCESS_TOKEN); const { data: { meta }, } = yield axiosStrava.get(`/users?filter[email][_eq]=${email}&meta=filter_count`); return !!meta.filter_count; } catch (error) { console.error("No se ha podido comprobar si el usuario está registrado:", error); throw new Error("No se ha podido comprobar si el usuario está registrado."); } }); exports.isUserRegistered = isUserRegistered; const getCurrentUser = (_a) => __awaiter(void 0, [_a], void 0, function* ({ email, password }) { try { const axiosAuthInstance = (0, axios_1.default)(null); const { data } = yield axiosAuthInstance.post("/auth/login", { email, password, }); const { access_token, refresh_token, expires } = data.data; const axiosCurrentUserInstance = (0, axios_1.default)(access_token); const userResponse = yield axiosCurrentUserInstance.get("/users/me"); const userApiData = userResponse.data.data; return { id: userApiData.id, first_name: userApiData.first_name, last_name: userApiData.last_name, access_token, refresh_token, expires_at: Math.floor(Date.now() / 1000) + 21600000 / 1000, expires_in: expires, strava: { id: userApiData.id_strava, access_token: userApiData.access_token, refresh_token: userApiData.refresh_token, username: userApiData.username, avatar: userApiData.avatar_strava, expires_at: userApiData.expires_at, expires_in: userApiData.expires_in, }, }; } catch (error) { console.error("No se pudo obtener la información del usuario:", error); throw new Error("No se pudo obtener la información del usuario."); } }); exports.getCurrentUser = getCurrentUser; const updateUser = (_a) => __awaiter(void 0, [_a], void 0, function* ({ userId, payload }) { try { const TOKEN = (0, config_1.getApiToken)(); const axiosAuthInstance = (0, axios_1.default)(TOKEN); yield axiosAuthInstance.patch(`/users/${userId}`, { access_token: payload.access_token, expires_at: payload.expires_at, expires_in: payload.expires_in, refresh_token: payload.refresh_token, }); const userResponse = yield axiosAuthInstance.get("/users/me"); const userApiData = userResponse.data.data; return { id: userApiData.id, first_name: userApiData.first_name, last_name: userApiData.last_name, access_token: userApiData.access_token, refresh_token: userApiData.refresh_token, expires_at: userApiData.expires_at, expires_in: userApiData.expires_in, strava: { id: userApiData.id_strava, access_token: userApiData.access_token, refresh_token: userApiData.refresh_token, username: userApiData.username, avatar: userApiData.avatar_strava, expires_at: userApiData.expires_at, expires_in: userApiData.expires_in, }, }; } catch (error) { console.error("No se pudo actualizar el usuario:", error); throw new Error("No se pudo actualizar el usuario."); } }); exports.updateUser = updateUser;