Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

skava / @skava/graphql   js

Repository URL to install this package:

Version: 9.0.35-framework 

/ dist / deps / checkAPIResponse.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
 * @file @todo 1. move to modules
 * @file @todo 2. use date-fns to check last time like in e2e tests
 */
const exotic_1 = require("exotic");
const persistence_1 = require("@skava/persistence");
const config_1 = require("../bootstrapper/config");
const getSessionToken_1 = require("../deps/getSessionToken");
const isSuccessResponse = (response) => exotic_1.isObj(response) && [200, 204, 201, 202, 204].includes(response.status);
exports.isSuccessResponse = isSuccessResponse;
const getSessionTokenFromContext = (context) => {
    const headerCookie = context.store.get('headers');
    const sessionId = headerCookie.get('Cookie') || headerCookie.get('cookie');
    if (sessionId) {
        const sessionTokenValue = sessionId.split(`${config_1.cookieConfig.sessionIdNamespace}=`)[1];
        const sessionToken = sessionTokenValue
            ? sessionTokenValue.split(';')[0]
            : '';
        return sessionToken;
    }
    else {
        return '';
    }
};
exports.getSessionTokenFromContext = getSessionTokenFromContext;
/**
 * @todo need to check if it is expired same as I am doing in `__tests__/generator`
 */
const checkAndGetSessionId = (context) => {
    const sessionId = getSessionTokenFromContext(context);
    // session or guest
    // put this way because oneStorage reading from file isn't the fastest
    return sessionId ? sessionId : persistence_1.oneStorage.get(config_1.cookieConfig.sessionIdNamespace);
};
exports.checkAndGetSessionId = checkAndGetSessionId;
const isSessionExpired = (response) => {
    return response && response.status === 401;
};
exports.isSessionExpired = isSessionExpired;
const getUnAuthResponse = async (response, sessionToken) => {
    const errorLikeResponse = {
        properties: {
            state: {
                status: 'error',
            },
        },
        responseMessage: 'failure - session expired',
        responseCode: response.status,
    };
    const guestSessionToken = persistence_1.oneStorage.get(config_1.cookieConfig.sessionIdNamespace);
    if (sessionToken === guestSessionToken) {
        await getSessionToken_1.getSessionToken();
    }
    return errorLikeResponse;
};
exports.getUnAuthResponse = getUnAuthResponse;
exports.default = checkAndGetSessionId;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tBUElSZXNwb25zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZXBzL2NoZWNrQVBJUmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7O0dBR0c7QUFDSCxtQ0FBK0M7QUFDL0Msb0RBQStDO0FBQy9DLG1EQUFxRDtBQUNyRCw2REFBeUQ7QUFRekQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFFBQXFCLEVBQUUsRUFBRSxDQUNsRCxjQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQXdEdEUsOENBQWlCO0FBdERuQixNQUFNLDBCQUEwQixHQUFHLENBQUMsT0FBdUIsRUFBRSxFQUFFO0lBQzdELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMxRSxJQUFJLFNBQVMsRUFBRTtRQUNiLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FDdkMsR0FBRyxxQkFBWSxDQUFDLGtCQUFrQixHQUFHLENBQ3RDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFSixNQUFNLFlBQVksR0FBRyxpQkFBaUI7WUFDcEMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUVOLE9BQU8sWUFBWSxDQUFBO0tBQ3BCO1NBQU07UUFDTCxPQUFPLEVBQUUsQ0FBQTtLQUNWO0FBQ0gsQ0FBQyxDQUFBO0FBMENDLGdFQUEwQjtBQXhDNUI7O0dBRUc7QUFDSCxNQUFNLG9CQUFvQixHQUFHLENBQUMsT0FBdUIsRUFBVSxFQUFFO0lBQy9ELE1BQU0sU0FBUyxHQUFHLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3JELG1CQUFtQjtJQUNuQixzRUFBc0U7SUFDdEUsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsd0JBQVUsQ0FBQyxHQUFHLENBQUMscUJBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0FBQ2hGLENBQUMsQ0FBQTtBQTZCQyxvREFBb0I7QUEzQnRCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxRQUFrQixFQUFFLEVBQUU7SUFDOUMsT0FBTyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUE7QUFDNUMsQ0FBQyxDQUFBO0FBMEJDLDRDQUFnQjtBQXhCbEIsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsUUFBa0IsRUFBRSxZQUFvQixFQUFFLEVBQUU7SUFDM0UsTUFBTSxpQkFBaUIsR0FBRztRQUN4QixVQUFVLEVBQUU7WUFDVixLQUFLLEVBQUU7Z0JBQ0wsTUFBTSxFQUFFLE9BQU87YUFDaEI7U0FDRjtRQUNELGVBQWUsRUFBRSwyQkFBMkI7UUFDNUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxNQUFNO0tBQzlCLENBQUE7SUFFRCxNQUFNLGlCQUFpQixHQUFXLHdCQUFVLENBQUMsR0FBRyxDQUM5QyxxQkFBWSxDQUFDLGtCQUFrQixDQUNoQyxDQUFBO0lBQ0QsSUFBSSxZQUFZLEtBQUssaUJBQWlCLEVBQUU7UUFDdEMsTUFBTSxpQ0FBZSxFQUFFLENBQUE7S0FDeEI7SUFFRCxPQUFPLGlCQUFpQixDQUFBO0FBQzFCLENBQUMsQ0FBQTtBQU1DLDhDQUFpQjtBQUduQixrQkFBZSxvQkFBb0IsQ0FBQSJ9