@alextomas80/api-client-grupeta
Version:
Cliente API Grupeta CBR
104 lines (103 loc) • 4.76 kB
JavaScript
;
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;