From 0b94ad000d4daeb946f8bc0597db602bc87f84d0 Mon Sep 17 00:00:00 2001 From: Chika Date: Tue, 22 Dec 2020 18:49:45 +0300 Subject: [PATCH] get user & domain from cookies --- package.json | 1 + .../Calculation/lib/fetchData/index.js | 139 +++++++++--------- src/client/tools/user.ts | 38 ++--- src/core/types/user.ts | 8 +- 4 files changed, 90 insertions(+), 96 deletions(-) diff --git a/package.json b/package.json index 96dc2f8..56d504f 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "express-ntlm": "^2.5.2", "graphql": "^15.4.0", "helmet": "^4.2.0", + "js-cookie": "^2.2.1", "lodash": "^4.17.20", "luxon": "^1.25.0", "mobx": "^6.0.4", diff --git a/src/client/Containers/Calculation/lib/fetchData/index.js b/src/client/Containers/Calculation/lib/fetchData/index.js index 2ee00ab..a48ea7e 100644 --- a/src/client/Containers/Calculation/lib/fetchData/index.js +++ b/src/client/Containers/Calculation/lib/fetchData/index.js @@ -9,80 +9,75 @@ import systemUserQuery from './queries/systemUserQuery'; export default () => new Promise((resolve, reject) => { - getUser() - .then(({ UserName, DomainName, FullName }) => { - Promise.all([ - CrmService.crmgqlquery({ - ...initialOwnerQuery, - variables: { - statecode: 0, - fullName: FullName, - }, - }), - CrmService.crmgqlquery(optionsQuery), - CrmService.crmgqlquery(staticDataQuery), - CrmService.crmgqlquery({ - ...systemUserQuery, - variables: { username: `${DomainName}\\${UserName}` }, - }), - CrmService.crmgqlquery(insuranceQuery), - ]) - .then( - ([ - { entities: ownerOptions }, - { entities: initialOptions }, - { entities: staticEntities }, - { - entities: { systemuser }, - }, - { entities: insuranceCompanies }, - ]) => { - CalculationStore.applyOptions(ownerOptions); - CalculationStore.applyOptions(initialOptions); - CalculationStore.applyStaticData(staticEntities); - CalculationStore.applyStaticData({ systemuser: [systemuser] }); - CalculationStore.setTableColumns('tableInsurance')({ - options: { ...insuranceCompanies }, - }); + const { username: UserName, domainname: DomainName, FullName } = getUser(); - const supplierCurrency = CalculationStore.options.selectSupplierCurrency?.find( - x => x.isocurrencycode === 'RUB', - ); - if (supplierCurrency) - CalculationStore.setValue( - 'supplierCurrency', - supplierCurrency.transactioncurrencyid, - ); - - const evo_sot_coefficient_type = staticEntities.evo_sot_coefficient_type.find( - x => x.evo_id === 'BONUS_LEASING', - ); - - const evo_coefficient_bonus = staticEntities.evo_coefficient.find( - x => - x.evo_job_titleid === systemuser.evo_job_titleid && - x.evo_sot_coefficient_typeid === - evo_sot_coefficient_type?.evo_sot_coefficient_typeid, - ); - - if ( - evo_coefficient_bonus && - evo_coefficient_bonus.evo_sot_coefficient - ) { - CalculationStore.setValue( - 'saleBonus', - evo_coefficient_bonus.evo_sot_coefficient * 100, - ); - } - - resolve(); - }, - ) - .catch(err => { - reject(err); - throw err; + Promise.all([ + CrmService.crmgqlquery({ + ...initialOwnerQuery, + variables: { + statecode: 0, + fullName: FullName, + }, + }), + CrmService.crmgqlquery(optionsQuery), + CrmService.crmgqlquery(staticDataQuery), + CrmService.crmgqlquery({ + ...systemUserQuery, + variables: { username: `${DomainName}\\${UserName}` }, + }), + CrmService.crmgqlquery(insuranceQuery), + ]) + .then( + ([ + { entities: ownerOptions }, + { entities: initialOptions }, + { entities: staticEntities }, + { + entities: { systemuser }, + }, + { entities: insuranceCompanies }, + ]) => { + CalculationStore.applyOptions(ownerOptions); + CalculationStore.applyOptions(initialOptions); + CalculationStore.applyStaticData(staticEntities); + CalculationStore.applyStaticData({ systemuser: [systemuser] }); + CalculationStore.setTableColumns('tableInsurance')({ + options: { ...insuranceCompanies }, }); - }) + + const supplierCurrency = CalculationStore.options.selectSupplierCurrency?.find( + x => x.isocurrencycode === 'RUB', + ); + if (supplierCurrency) + CalculationStore.setValue( + 'supplierCurrency', + supplierCurrency.transactioncurrencyid, + ); + + const evo_sot_coefficient_type = staticEntities.evo_sot_coefficient_type.find( + x => x.evo_id === 'BONUS_LEASING', + ); + + const evo_coefficient_bonus = staticEntities.evo_coefficient.find( + x => + x.evo_job_titleid === systemuser.evo_job_titleid && + x.evo_sot_coefficient_typeid === + evo_sot_coefficient_type?.evo_sot_coefficient_typeid, + ); + + if ( + evo_coefficient_bonus && + evo_coefficient_bonus.evo_sot_coefficient + ) { + CalculationStore.setValue( + 'saleBonus', + evo_coefficient_bonus.evo_sot_coefficient * 100, + ); + } + + resolve(); + }, + ) .catch(err => { reject(err); throw err; diff --git a/src/client/tools/user.ts b/src/client/tools/user.ts index faf5320..7856823 100644 --- a/src/client/tools/user.ts +++ b/src/client/tools/user.ts @@ -1,26 +1,26 @@ -import CalculationService from 'client/services/CalculationService'; import { User } from 'core/types/user'; -import { domainName } from 'core/constants/domain'; +import Cookies from 'js-cookie'; + +function getUserObj(user: User) { + return { + ...user, + fullname: `${user.domainname}\\${user.username}`, + }; +} + +export const getUser = (): User => { + const { username, domainname } = Cookies.get(); -export const getUser = async (): Promise => { - function getFullName(user: User) { - return `${user.DomainName}\\${user.UserName}`; - } if (process.env.NODE_ENV === 'development') { - const savedUser = localStorage.getItem('user'); - if (savedUser) { - const user = JSON.parse(savedUser); - if (user.UserName) { - return { ...user, FullName: getFullName(user) }; + if (!username || !domainname) { + const username = prompt('Enter username'); + const domainname = prompt('Enter domainname'); + if (username && domainname) { + Cookies.set('username', username); + Cookies.set('domainname', domainname); } } - var username = prompt('Enter username'); - const user: User = { UserName: username || '', DomainName: domainName }; - localStorage.setItem('user', JSON.stringify(user)); - return { ...user, FullName: getFullName(user) }; } - - const { user } = await CalculationService.getUser(); - localStorage.setItem('user', JSON.stringify(user)); - return { ...user, FullName: getFullName(user) }; + const user: User = getUserObj({ username, domainname }); + return user; }; diff --git a/src/core/types/user.ts b/src/core/types/user.ts index 937410b..951d0f6 100644 --- a/src/core/types/user.ts +++ b/src/core/types/user.ts @@ -1,7 +1,5 @@ export type User = { - DomainName?: string; - UserName?: string; - FullName?: string; - Workstation?: string; - Authenticated?: boolean; + domainname?: string; + username?: string; + fullname?: string; };