@coko/server
Version:
Reusable server for use by Coko's projects
25 lines • 1.42 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAuthTokens = exports.authenticatedCall = void 0;
const identity_controller_1 = require("../models/identity/identity.controller");
const makeCall_1 = __importDefault(require("./makeCall"));
const tokens_1 = require("./tokens");
Object.defineProperty(exports, "getAuthTokens", { enumerable: true, get: function () { return tokens_1.getAuthTokens; } });
const authenticatedCall = async (userId, providerLabel, callParameters) => {
if (!callParameters)
throw new Error(`Call parameters are required`);
const accessToken = await (0, tokens_1.getAuthTokens)(userId, providerLabel);
const response = await (0, makeCall_1.default)(callParameters, accessToken);
if (response.status === 401) {
// for the case that something happened and accessToken become invalid -> set that expired
await (0, identity_controller_1.invalidateProviderAccessToken)(userId, providerLabel);
const freshAccessToken = await (0, tokens_1.getAuthTokens)(userId, providerLabel);
return (0, makeCall_1.default)(callParameters, freshAccessToken);
}
return response;
};
exports.authenticatedCall = authenticatedCall;
//# sourceMappingURL=authenticatedCall.js.map