module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = require('../../../../../ssr-module-cache.js'); /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ var threw = true; /******/ try { /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ threw = false; /******/ } finally { /******/ if(threw) delete installedModules[moduleId]; /******/ } /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 4); /******/ }) /************************************************************************/ /******/ ({ /***/ "+B7X": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return handler; }); /* harmony import */ var _api_auth_auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Cl2b"); /* harmony import */ var _api_auth_auth__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_api_auth_auth__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var cookies__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Vjj2"); /* harmony import */ var cookies__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cookies__WEBPACK_IMPORTED_MODULE_1__); async function handler(req, res) { if (req.method == "POST") { const cookies = new cookies__WEBPACK_IMPORTED_MODULE_1___default.a(req, res); const partner = req.body.p; var user = await cookies.get("user"); var token = await cookies.get("myToken"); var userObj = user ? JSON.parse(user) : null; let sessionId = userObj["partners_login_states"].filter(i => i.business_partner && i.business_partner.name.toUpperCase() == partner.toUpperCase()); sessionId.forEach(async i => { var resp = await _api_auth_auth__WEBPACK_IMPORTED_MODULE_0___default.a.logout(i.id, token); if (resp["STATUS"] == 0) { return res.status(400).send(resp["DATA"]); } }); userObj["partners_login_states"] = userObj["partners_login_states"].filter(i => i.business_partner && i.business_partner.name.toUpperCase() != partner.toUpperCase()); await cookies.set("user", JSON.stringify(userObj), { httpOnly: true // true by default }); return res.status(200).send("Success Logout"); } else { return res.status(400).send("NOT FOUND"); } } /***/ }), /***/ "3JHI": /***/ (function(module, exports, __webpack_require__) { "use strict"; var _apollo = _interopRequireDefault(__webpack_require__("B/3u")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } async function getID(partner, token = "") { var res = await _apollo.default.query(` query($input : String!){ businessPartners(where:{name_contains:$input}){ id } }`, token, { input: partner }); return res; } module.exports = { getID: getID }; /***/ }), /***/ 4: /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__("+B7X"); /***/ }), /***/ "B/3u": /***/ (function(module, exports, __webpack_require__) { "use strict"; var _client = __webpack_require__("z+8S"); var _apolloConfig = _interopRequireDefault(__webpack_require__("bx/+")); var _crossFetch = _interopRequireDefault(__webpack_require__("CCqr")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function errorHandler(object) { return object.graphQLErrors.length != 0 ? object.graphQLErrors[0].message : object.networkError && object.networkError.result ? object.networkError.result.errors.join(" ; ") : object.networkError ? object.networkError[Object.keys(object.networkError)[0]].toString() : "Fetch failed"; } function initApollo(token) { const httpLink = (0, _client.createHttpLink)({ uri: _apolloConfig.default.graphql_uri, fetch: _crossFetch.default, headers: token != "" ? { Authorization: `Bearer ${token}` } : null }); return new _client.ApolloClient({ ssrMode: false, cache: new _client.InMemoryCache({ addTypename: false }), link: httpLink }); } async function query(query, token = "", variables = {}, cache = false) { const client = initApollo(token); var res; try { var sql = await client.query({ query: (0, _client.gql)` ${query} `, variables: variables, fetchPolicy: cache ? "cache-first" : "no-cache" }); res = { STATUS: 1, DATA: sql.data }; } catch (e) { res = { STATUS: 0, DATA: errorHandler(e) }; } return res; } async function mutation(mutation, token = "", variables = {}) { const client = initApollo(token); var res; try { var sql = await client.mutate({ mutation: (0, _client.gql)` ${mutation} `, variables: variables }); res = { STATUS: 1, DATA: sql.data }; } catch (e) { console.log(e.networkError.result); res = { STATUS: 0, DATA: errorHandler(e) }; } return res; } module.exports = { query: query, mutation: mutation }; /***/ }), /***/ "CCqr": /***/ (function(module, exports) { module.exports = require("cross-fetch"); /***/ }), /***/ "Cl2b": /***/ (function(module, exports, __webpack_require__) { "use strict"; var _apollo = _interopRequireDefault(__webpack_require__("B/3u")); var _partner = _interopRequireDefault(__webpack_require__("3JHI")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } async function register(first_name, last_name, username, email, password, token = "") { var res = await _apollo.default.mutation(` mutation($username: String! $first_name: String! $last_name: String! $email: String! $password: String!) { register(input: { first_name: $first_name, last_name: $last_name, username: $username, email: $email, password: $password }) { jwt user { firstname lastname username email } } }`, token, { first_name: first_name, last_name: last_name, username: username, email: email, password: password }); return res; } async function login(partner, email, password, token = "") { var cookiesData = {}; var res = await _apollo.default.mutation(` mutation($email: String! $password: String!) { login(input: { identifier: $email, password: $password }) { user{ id username } jwt } }`, token, { email: email, password: password }); if (res["STATUS"] == 1) { token = res["DATA"]["login"]["jwt"]; res = await _apollo.default.mutation(` query{ self{ id username email role{ name description } partners_login_states{ id business_partner{ id name } } } } `, token); } if (res["STATUS"] == 1) { var user = res["DATA"]["self"]; var sessions = []; for (const i of user["partners_login_states"]) { sessions.push(i.business_partner); } sessions = sessions.filter(i => i.business_partner && i.business_partner.name.toUpperCase() == partner.toUpperCase()); if (sessions.length == 0) { res = await _partner.default.getID(partner, token); if (res["STATUS"] == 1) { res = await _apollo.default.mutation(` mutation($input: PartnersLoginStateInput!) { createPartnersLoginState(input:{data:$input}){ partnersLoginState{ id business_partner{ id name } } } } `, token, { input: { user: user["id"], business_partner: res["DATA"]["businessPartners"][0]["id"] } }); if (res["STATUS"] == 1) { user["partners_login_states"].push(res["DATA"]["createPartnersLoginState"]["partnersLoginState"]); } } } cookiesData["user"] = user; cookiesData["token"] = token; } return { res: res, cookies: cookiesData }; } async function logout(id, token = "") { var res = await _apollo.default.mutation(` mutation($input: ID!) { deletePartnersLoginState(input:{where:{id:$input}}){ partnersLoginState{ id } } }`, token, { input: id }); return res; } module.exports = { register: register, login: login, logout: logout }; /***/ }), /***/ "Vjj2": /***/ (function(module, exports) { module.exports = require("cookies"); /***/ }), /***/ "bx/+": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // Apollo Value Configuration const ApolloConfig = { graphql_uri: process.env.API_GRAPHQL_URI }; /* harmony default export */ __webpack_exports__["default"] = (ApolloConfig); /***/ }), /***/ "z+8S": /***/ (function(module, exports) { module.exports = require("@apollo/client"); /***/ }) /******/ });