Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

445 рядки
13 KiB

  1. module.exports =
  2. /******/ (function(modules) { // webpackBootstrap
  3. /******/ // The module cache
  4. /******/ var installedModules = require('../../../../../ssr-module-cache.js');
  5. /******/
  6. /******/ // The require function
  7. /******/ function __webpack_require__(moduleId) {
  8. /******/
  9. /******/ // Check if module is in cache
  10. /******/ if(installedModules[moduleId]) {
  11. /******/ return installedModules[moduleId].exports;
  12. /******/ }
  13. /******/ // Create a new module (and put it into the cache)
  14. /******/ var module = installedModules[moduleId] = {
  15. /******/ i: moduleId,
  16. /******/ l: false,
  17. /******/ exports: {}
  18. /******/ };
  19. /******/
  20. /******/ // Execute the module function
  21. /******/ var threw = true;
  22. /******/ try {
  23. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  24. /******/ threw = false;
  25. /******/ } finally {
  26. /******/ if(threw) delete installedModules[moduleId];
  27. /******/ }
  28. /******/
  29. /******/ // Flag the module as loaded
  30. /******/ module.l = true;
  31. /******/
  32. /******/ // Return the exports of the module
  33. /******/ return module.exports;
  34. /******/ }
  35. /******/
  36. /******/
  37. /******/ // expose the modules object (__webpack_modules__)
  38. /******/ __webpack_require__.m = modules;
  39. /******/
  40. /******/ // expose the module cache
  41. /******/ __webpack_require__.c = installedModules;
  42. /******/
  43. /******/ // define getter function for harmony exports
  44. /******/ __webpack_require__.d = function(exports, name, getter) {
  45. /******/ if(!__webpack_require__.o(exports, name)) {
  46. /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
  47. /******/ }
  48. /******/ };
  49. /******/
  50. /******/ // define __esModule on exports
  51. /******/ __webpack_require__.r = function(exports) {
  52. /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  53. /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  54. /******/ }
  55. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  56. /******/ };
  57. /******/
  58. /******/ // create a fake namespace object
  59. /******/ // mode & 1: value is a module id, require it
  60. /******/ // mode & 2: merge all properties of value into the ns
  61. /******/ // mode & 4: return value when already ns object
  62. /******/ // mode & 8|1: behave like require
  63. /******/ __webpack_require__.t = function(value, mode) {
  64. /******/ if(mode & 1) value = __webpack_require__(value);
  65. /******/ if(mode & 8) return value;
  66. /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  67. /******/ var ns = Object.create(null);
  68. /******/ __webpack_require__.r(ns);
  69. /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  70. /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  71. /******/ return ns;
  72. /******/ };
  73. /******/
  74. /******/ // getDefaultExport function for compatibility with non-harmony modules
  75. /******/ __webpack_require__.n = function(module) {
  76. /******/ var getter = module && module.__esModule ?
  77. /******/ function getDefault() { return module['default']; } :
  78. /******/ function getModuleExports() { return module; };
  79. /******/ __webpack_require__.d(getter, 'a', getter);
  80. /******/ return getter;
  81. /******/ };
  82. /******/
  83. /******/ // Object.prototype.hasOwnProperty.call
  84. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  85. /******/
  86. /******/ // __webpack_public_path__
  87. /******/ __webpack_require__.p = "";
  88. /******/
  89. /******/
  90. /******/ // Load entry module and return exports
  91. /******/ return __webpack_require__(__webpack_require__.s = 4);
  92. /******/ })
  93. /************************************************************************/
  94. /******/ ({
  95. /***/ "+B7X":
  96. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  97. "use strict";
  98. __webpack_require__.r(__webpack_exports__);
  99. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return handler; });
  100. /* harmony import */ var _api_auth_auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Cl2b");
  101. /* harmony import */ var _api_auth_auth__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_api_auth_auth__WEBPACK_IMPORTED_MODULE_0__);
  102. /* harmony import */ var cookies__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Vjj2");
  103. /* harmony import */ var cookies__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cookies__WEBPACK_IMPORTED_MODULE_1__);
  104. async function handler(req, res) {
  105. if (req.method == "POST") {
  106. const cookies = new cookies__WEBPACK_IMPORTED_MODULE_1___default.a(req, res);
  107. const partner = req.body.p;
  108. var user = await cookies.get("user");
  109. var token = await cookies.get("myToken");
  110. var userObj = user ? JSON.parse(user) : null;
  111. let sessionId = userObj["partners_login_states"].filter(i => i.business_partner && i.business_partner.name.toUpperCase() == partner.toUpperCase());
  112. sessionId.forEach(async i => {
  113. var resp = await _api_auth_auth__WEBPACK_IMPORTED_MODULE_0___default.a.logout(i.id, token);
  114. if (resp["STATUS"] == 0) {
  115. return res.status(400).send(resp["DATA"]);
  116. }
  117. });
  118. userObj["partners_login_states"] = userObj["partners_login_states"].filter(i => i.business_partner && i.business_partner.name.toUpperCase() != partner.toUpperCase());
  119. await cookies.set("user", JSON.stringify(userObj), {
  120. httpOnly: true // true by default
  121. });
  122. return res.status(200).send("Success Logout");
  123. } else {
  124. return res.status(400).send("NOT FOUND");
  125. }
  126. }
  127. /***/ }),
  128. /***/ "3JHI":
  129. /***/ (function(module, exports, __webpack_require__) {
  130. "use strict";
  131. var _apollo = _interopRequireDefault(__webpack_require__("B/3u"));
  132. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  133. async function getID(partner, token = "") {
  134. var res = await _apollo.default.query(`
  135. query($input : String!){
  136. businessPartners(where:{name_contains:$input}){
  137. id
  138. }
  139. }`, token, {
  140. input: partner
  141. });
  142. return res;
  143. }
  144. module.exports = {
  145. getID: getID
  146. };
  147. /***/ }),
  148. /***/ 4:
  149. /***/ (function(module, exports, __webpack_require__) {
  150. module.exports = __webpack_require__("+B7X");
  151. /***/ }),
  152. /***/ "B/3u":
  153. /***/ (function(module, exports, __webpack_require__) {
  154. "use strict";
  155. var _client = __webpack_require__("z+8S");
  156. var _apolloConfig = _interopRequireDefault(__webpack_require__("bx/+"));
  157. var _crossFetch = _interopRequireDefault(__webpack_require__("CCqr"));
  158. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  159. function errorHandler(object) {
  160. 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";
  161. }
  162. function initApollo(token) {
  163. const httpLink = (0, _client.createHttpLink)({
  164. uri: _apolloConfig.default.graphql_uri,
  165. fetch: _crossFetch.default,
  166. headers: token != "" ? {
  167. Authorization: `Bearer ${token}`
  168. } : null
  169. });
  170. return new _client.ApolloClient({
  171. ssrMode: false,
  172. cache: new _client.InMemoryCache({
  173. addTypename: false
  174. }),
  175. link: httpLink
  176. });
  177. }
  178. async function query(query, token = "", variables = {}, cache = false) {
  179. const client = initApollo(token);
  180. var res;
  181. try {
  182. var sql = await client.query({
  183. query: (0, _client.gql)`
  184. ${query}
  185. `,
  186. variables: variables,
  187. fetchPolicy: cache ? "cache-first" : "no-cache"
  188. });
  189. res = {
  190. STATUS: 1,
  191. DATA: sql.data
  192. };
  193. } catch (e) {
  194. res = {
  195. STATUS: 0,
  196. DATA: errorHandler(e)
  197. };
  198. }
  199. return res;
  200. }
  201. async function mutation(mutation, token = "", variables = {}) {
  202. const client = initApollo(token);
  203. var res;
  204. try {
  205. var sql = await client.mutate({
  206. mutation: (0, _client.gql)`
  207. ${mutation}
  208. `,
  209. variables: variables
  210. });
  211. res = {
  212. STATUS: 1,
  213. DATA: sql.data
  214. };
  215. } catch (e) {
  216. console.log(e.networkError.result);
  217. res = {
  218. STATUS: 0,
  219. DATA: errorHandler(e)
  220. };
  221. }
  222. return res;
  223. }
  224. module.exports = {
  225. query: query,
  226. mutation: mutation
  227. };
  228. /***/ }),
  229. /***/ "CCqr":
  230. /***/ (function(module, exports) {
  231. module.exports = require("cross-fetch");
  232. /***/ }),
  233. /***/ "Cl2b":
  234. /***/ (function(module, exports, __webpack_require__) {
  235. "use strict";
  236. var _apollo = _interopRequireDefault(__webpack_require__("B/3u"));
  237. var _partner = _interopRequireDefault(__webpack_require__("3JHI"));
  238. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  239. async function register(first_name, last_name, username, email, password, token = "") {
  240. var res = await _apollo.default.mutation(`
  241. mutation($username: String! $first_name: String! $last_name: String! $email: String! $password: String!) {
  242. register(input: { first_name: $first_name, last_name: $last_name, username: $username, email: $email, password: $password }) {
  243. jwt
  244. user {
  245. firstname
  246. lastname
  247. username
  248. email
  249. }
  250. }
  251. }`, token, {
  252. first_name: first_name,
  253. last_name: last_name,
  254. username: username,
  255. email: email,
  256. password: password
  257. });
  258. return res;
  259. }
  260. async function login(partner, email, password, token = "") {
  261. var cookiesData = {};
  262. var res = await _apollo.default.mutation(`
  263. mutation($email: String! $password: String!) {
  264. login(input: { identifier: $email, password: $password }) {
  265. user{
  266. id
  267. username
  268. }
  269. jwt
  270. }
  271. }`, token, {
  272. email: email,
  273. password: password
  274. });
  275. if (res["STATUS"] == 1) {
  276. token = res["DATA"]["login"]["jwt"];
  277. res = await _apollo.default.mutation(`
  278. query{
  279. self{
  280. id
  281. username
  282. email
  283. role{
  284. name
  285. description
  286. }
  287. partners_login_states{
  288. id
  289. business_partner{
  290. id
  291. name
  292. }
  293. }
  294. }
  295. }
  296. `, token);
  297. }
  298. if (res["STATUS"] == 1) {
  299. var user = res["DATA"]["self"];
  300. var sessions = [];
  301. for (const i of user["partners_login_states"]) {
  302. sessions.push(i.business_partner);
  303. }
  304. sessions = sessions.filter(i => i.business_partner && i.business_partner.name.toUpperCase() == partner.toUpperCase());
  305. if (sessions.length == 0) {
  306. res = await _partner.default.getID(partner, token);
  307. if (res["STATUS"] == 1) {
  308. res = await _apollo.default.mutation(`
  309. mutation($input: PartnersLoginStateInput!) {
  310. createPartnersLoginState(input:{data:$input}){
  311. partnersLoginState{
  312. id
  313. business_partner{
  314. id
  315. name
  316. }
  317. }
  318. }
  319. }
  320. `, token, {
  321. input: {
  322. user: user["id"],
  323. business_partner: res["DATA"]["businessPartners"][0]["id"]
  324. }
  325. });
  326. if (res["STATUS"] == 1) {
  327. user["partners_login_states"].push(res["DATA"]["createPartnersLoginState"]["partnersLoginState"]);
  328. }
  329. }
  330. }
  331. cookiesData["user"] = user;
  332. cookiesData["token"] = token;
  333. }
  334. return {
  335. res: res,
  336. cookies: cookiesData
  337. };
  338. }
  339. async function logout(id, token = "") {
  340. var res = await _apollo.default.mutation(`
  341. mutation($input: ID!) {
  342. deletePartnersLoginState(input:{where:{id:$input}}){
  343. partnersLoginState{
  344. id
  345. }
  346. }
  347. }`, token, {
  348. input: id
  349. });
  350. return res;
  351. }
  352. module.exports = {
  353. register: register,
  354. login: login,
  355. logout: logout
  356. };
  357. /***/ }),
  358. /***/ "Vjj2":
  359. /***/ (function(module, exports) {
  360. module.exports = require("cookies");
  361. /***/ }),
  362. /***/ "bx/+":
  363. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  364. "use strict";
  365. __webpack_require__.r(__webpack_exports__);
  366. // Apollo Value Configuration
  367. const ApolloConfig = {
  368. graphql_uri: process.env.API_GRAPHQL_URI
  369. };
  370. /* harmony default export */ __webpack_exports__["default"] = (ApolloConfig);
  371. /***/ }),
  372. /***/ "z+8S":
  373. /***/ (function(module, exports) {
  374. module.exports = require("@apollo/client");
  375. /***/ })
  376. /******/ });