466b1381a00ea7ded4d941374f8ea7361931e088
[motion2.git] / server / api / cmCompany / cmCompany.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xc17f=['offset','undefined','count','limit','set','Content-Range','apply','save','update','then','destroy','get','Companies','UserProfileResource','sendStatus','error','stack','name','send','index','CmCompany','keys','intersection','model','query','attributes','nolimit','order','sort','filters','pick','filter','where','merge','options','includeAll','findAll','rows','catch','show','params','rawAttributes','fields','length','include','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','describe','addContacts','CmContact','find','omit','ids','findOne','map','getContacts','eml-format','zip-dir','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json'];(function(_0x1fe5e1,_0x16ab87){var _0x29246f=function(_0x300bcf){while(--_0x300bcf){_0x1fe5e1['push'](_0x1fe5e1['shift']());}};_0x29246f(++_0x16ab87);}(_0xc17f,0x199));var _0xfc17=function(_0x496495,_0x454522){_0x496495=_0x496495-0x0;var _0x5a795d=_0xc17f[_0x496495];return _0x5a795d;};'use strict';var emlformat=require(_0xfc17('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xfc17('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xfc17('0x2'));var Mustache=require(_0xfc17('0x3'));var util=require(_0xfc17('0x4'));var path=require('path');var sox=require(_0xfc17('0x5'));var csv=require(_0xfc17('0x6'));var ejs=require(_0xfc17('0x7'));var fs=require('fs');var fs_extra=require(_0xfc17('0x8'));var _=require('lodash');var squel=require(_0xfc17('0x9'));var crypto=require(_0xfc17('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xfc17('0x6'));var querystring=require(_0xfc17('0xb'));var Papa=require(_0xfc17('0xc'));var Redis=require(_0xfc17('0xd'));var authService=require('../../components/auth/service');var qs=require(_0xfc17('0xe'));var as=require(_0xfc17('0xf'));var hardwareService=require(_0xfc17('0x10'));var logger=require(_0xfc17('0x11'))(_0xfc17('0x12'));var utils=require(_0xfc17('0x13'));var config=require(_0xfc17('0x14'));var licenseUtil=require(_0xfc17('0x15'));var db=require(_0xfc17('0x16'))['db'];function respondWithStatusCode(_0x52b04c,_0x1a26e0){_0x1a26e0=_0x1a26e0||0xcc;return function(_0x5a2312){if(_0x5a2312){return _0x52b04c['sendStatus'](_0x1a26e0);}return _0x52b04c[_0xfc17('0x17')](_0x1a26e0)[_0xfc17('0x18')]();};}function respondWithResult(_0x386525,_0x1d4117){_0x1d4117=_0x1d4117||0xc8;return function(_0x49d080){if(_0x49d080){return _0x386525[_0xfc17('0x17')](_0x1d4117)[_0xfc17('0x19')](_0x49d080);}};}function respondWithFilteredResult(_0x108daf,_0x348826){return function(_0x41c1d7){if(_0x41c1d7){var _0x286468=typeof _0x348826[_0xfc17('0x1a')]===_0xfc17('0x1b')&&typeof _0x348826['limit']==='undefined';var _0x23b67e=_0x41c1d7[_0xfc17('0x1c')];var _0x1a4822=_0x286468?0x0:_0x348826[_0xfc17('0x1a')];var _0x22d650=_0x286468?_0x41c1d7['count']:_0x348826[_0xfc17('0x1a')]+_0x348826[_0xfc17('0x1d')];var _0x208a41;if(_0x22d650>=_0x23b67e){_0x22d650=_0x23b67e;_0x208a41=0xc8;}else{_0x208a41=0xce;}_0x108daf[_0xfc17('0x17')](_0x208a41);return _0x108daf[_0xfc17('0x1e')](_0xfc17('0x1f'),_0x1a4822+'-'+_0x22d650+'/'+_0x23b67e)[_0xfc17('0x19')](_0x41c1d7);}return null;};}function patchUpdates(_0x3018c9){return function(_0x293bea){try{jsonpatch[_0xfc17('0x20')](_0x293bea,_0x3018c9,!![]);}catch(_0xb4b549){return BPromise['reject'](_0xb4b549);}return _0x293bea[_0xfc17('0x21')]();};}function saveUpdates(_0x41926e,_0x192f78){return function(_0x31736f){if(_0x31736f){return _0x31736f[_0xfc17('0x22')](_0x41926e)[_0xfc17('0x23')](function(_0x2d3805){return _0x2d3805;});}return null;};}function removeEntity(_0x59d0df,_0x3c7969){return function(_0x2bb479){if(_0x2bb479){return _0x2bb479[_0xfc17('0x24')]()['then'](function(){var _0x84d516=_0x2bb479[_0xfc17('0x25')]({'plain':!![]});var _0x2eefe4=_0xfc17('0x26');return db[_0xfc17('0x27')]['destroy']({'where':{'type':_0x2eefe4,'resourceId':_0x84d516['id']}})[_0xfc17('0x23')](function(){return _0x2bb479;});})[_0xfc17('0x23')](function(){_0x59d0df[_0xfc17('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0xde8f5d,_0xa35608){return function(_0x13ae07){if(!_0x13ae07){_0xde8f5d[_0xfc17('0x28')](0x194);}return _0x13ae07;};}function handleError(_0x454e21,_0x30fb76){_0x30fb76=_0x30fb76||0x1f4;return function(_0x188665){logger[_0xfc17('0x29')](_0x188665[_0xfc17('0x2a')]);if(_0x188665[_0xfc17('0x2b')]){delete _0x188665[_0xfc17('0x2b')];}_0x454e21[_0xfc17('0x17')](_0x30fb76)[_0xfc17('0x2c')](_0x188665);};}exports[_0xfc17('0x2d')]=function(_0x5edf41,_0x5da99b){var _0x3a23b5={},_0x5384b1={},_0x1020e2={'count':0x0,'rows':[]};return db[_0xfc17('0x2e')]['describe']()[_0xfc17('0x23')](function(_0x4a6e66){_0x5384b1['model']=_[_0xfc17('0x2f')](_0x4a6e66);_0x5384b1['query']=_[_0xfc17('0x2f')](_0x5edf41['query']);_0x5384b1['filters']=_[_0xfc17('0x30')](_0x5384b1[_0xfc17('0x31')],_0x5384b1[_0xfc17('0x32')]);_0x3a23b5[_0xfc17('0x33')]=_['intersection'](_0x5384b1[_0xfc17('0x31')],qs['fields'](_0x5edf41[_0xfc17('0x32')]['fields']));_0x3a23b5[_0xfc17('0x33')]=_0x3a23b5[_0xfc17('0x33')]['length']?_0x3a23b5[_0xfc17('0x33')]:_0x5384b1[_0xfc17('0x31')];if(!_0x5edf41[_0xfc17('0x32')]['hasOwnProperty'](_0xfc17('0x34'))){_0x3a23b5[_0xfc17('0x1d')]=qs[_0xfc17('0x1d')](_0x5edf41[_0xfc17('0x32')]['limit']);_0x3a23b5['offset']=qs[_0xfc17('0x1a')](_0x5edf41[_0xfc17('0x32')]['offset']);}_0x3a23b5[_0xfc17('0x35')]=qs['sort'](_0x5edf41[_0xfc17('0x32')][_0xfc17('0x36')]);_0x3a23b5['where']=qs[_0xfc17('0x37')](_[_0xfc17('0x38')](_0x5edf41[_0xfc17('0x32')],_0x5384b1['filters']),_0x4a6e66);if(_0x5edf41[_0xfc17('0x32')][_0xfc17('0x39')]){_0x3a23b5[_0xfc17('0x3a')]=_[_0xfc17('0x3b')](_0x3a23b5['where'],{'$or':_['map'](_0x3a23b5['attributes'],function(_0x44f8d1){var _0x1f2714={};_0x1f2714[_0x44f8d1]={'$like':'%'+_0x5edf41['query'][_0xfc17('0x39')]+'%'};return _0x1f2714;})});}_0x3a23b5=_[_0xfc17('0x3b')]({},_0x3a23b5,_0x5edf41[_0xfc17('0x3c')]);var _0x2cb613={'where':_0x3a23b5[_0xfc17('0x3a')]};return db[_0xfc17('0x2e')][_0xfc17('0x1c')](_0x2cb613)[_0xfc17('0x23')](function(_0x49c332){_0x1020e2[_0xfc17('0x1c')]=_0x49c332;if(_0x5edf41[_0xfc17('0x32')][_0xfc17('0x3d')]){_0x3a23b5['include']=[{'all':!![]}];}return db[_0xfc17('0x2e')][_0xfc17('0x3e')](_0x3a23b5);})[_0xfc17('0x23')](function(_0x345803){_0x1020e2[_0xfc17('0x3f')]=_0x345803;return _0x1020e2;})[_0xfc17('0x23')](respondWithFilteredResult(_0x5da99b,_0x3a23b5))[_0xfc17('0x40')](handleError(_0x5da99b,null));})[_0xfc17('0x40')](handleError(_0x5da99b,null));};exports[_0xfc17('0x41')]=function(_0x13d535,_0x31d487){var _0x385fdd={'raw':![],'where':{'id':_0x13d535[_0xfc17('0x42')]['id']}},_0x220f00={};_0x220f00['model']=_[_0xfc17('0x2f')](db[_0xfc17('0x2e')][_0xfc17('0x43')]);_0x220f00[_0xfc17('0x32')]=_[_0xfc17('0x2f')](_0x13d535['query']);_0x220f00['filters']=_[_0xfc17('0x30')](_0x220f00[_0xfc17('0x31')],_0x220f00[_0xfc17('0x32')]);_0x385fdd[_0xfc17('0x33')]=_[_0xfc17('0x30')](_0x220f00[_0xfc17('0x31')],qs[_0xfc17('0x44')](_0x13d535[_0xfc17('0x32')]['fields']));_0x385fdd['attributes']=_0x385fdd['attributes'][_0xfc17('0x45')]?_0x385fdd[_0xfc17('0x33')]:_0x220f00[_0xfc17('0x31')];if(_0x13d535[_0xfc17('0x32')][_0xfc17('0x3d')]){_0x385fdd[_0xfc17('0x46')]=[{'all':!![]}];}_0x385fdd=_['merge']({},_0x385fdd,_0x13d535[_0xfc17('0x3c')]);return db[_0xfc17('0x2e')]['find'](_0x385fdd)[_0xfc17('0x23')](handleEntityNotFound(_0x31d487,null))[_0xfc17('0x23')](respondWithResult(_0x31d487,null))[_0xfc17('0x40')](handleError(_0x31d487,null));};exports[_0xfc17('0x47')]=function(_0x47e0e6,_0x44b366){return db['CmCompany'][_0xfc17('0x47')](_0x47e0e6[_0xfc17('0x48')],{})[_0xfc17('0x23')](function(_0x5c80c5){var _0x282e70=_0x47e0e6[_0xfc17('0x49')][_0xfc17('0x25')]({'plain':!![]});if(!_0x282e70)throw new Error(_0xfc17('0x4a'));if(_0x282e70[_0xfc17('0x4b')]===_0xfc17('0x49')){var _0x82c33d=_0x5c80c5[_0xfc17('0x25')]({'plain':!![]});var _0x30b810=_0xfc17('0x26');return db[_0xfc17('0x4c')]['find']({'where':{'name':_0x30b810,'userProfileId':_0x282e70['userProfileId']},'raw':!![]})[_0xfc17('0x23')](function(_0x6a99a0){if(_0x6a99a0&&_0x6a99a0[_0xfc17('0x4d')]===0x0){return db[_0xfc17('0x27')][_0xfc17('0x47')]({'name':_0x82c33d[_0xfc17('0x2b')],'resourceId':_0x82c33d['id'],'type':_0x6a99a0['name'],'sectionId':_0x6a99a0['id']},{})[_0xfc17('0x23')](function(){return _0x5c80c5;});}else{return _0x5c80c5;}})[_0xfc17('0x40')](function(_0x382f9f){logger[_0xfc17('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x382f9f);throw _0x382f9f;});}return _0x5c80c5;})[_0xfc17('0x23')](respondWithResult(_0x44b366,0xc9))['catch'](handleError(_0x44b366,null));};exports[_0xfc17('0x22')]=function(_0x4f9bfc,_0x44342c){if(_0x4f9bfc[_0xfc17('0x48')]['id']){delete _0x4f9bfc[_0xfc17('0x48')]['id'];}return db[_0xfc17('0x2e')]['find']({'where':{'id':_0x4f9bfc[_0xfc17('0x42')]['id']}})[_0xfc17('0x23')](handleEntityNotFound(_0x44342c,null))[_0xfc17('0x23')](saveUpdates(_0x4f9bfc[_0xfc17('0x48')],null))[_0xfc17('0x23')](respondWithResult(_0x44342c,null))['catch'](handleError(_0x44342c,null));};exports[_0xfc17('0x24')]=function(_0xb18f4c,_0x351178){return db[_0xfc17('0x2e')]['find']({'where':{'id':_0xb18f4c[_0xfc17('0x42')]['id']}})[_0xfc17('0x23')](handleEntityNotFound(_0x351178,null))['then'](removeEntity(_0x351178,null))[_0xfc17('0x40')](handleError(_0x351178,null));};exports[_0xfc17('0x4e')]=function(_0x4c3663,_0x14866c){return db['CmCompany'][_0xfc17('0x4e')]()[_0xfc17('0x23')](respondWithResult(_0x14866c,null))['catch'](handleError(_0x14866c,null));};exports[_0xfc17('0x4f')]=function(_0xa12d71,_0x5e0d33,_0x48d788){return db[_0xfc17('0x50')][_0xfc17('0x51')]({'where':{'id':_0xa12d71[_0xfc17('0x42')]['id']}})[_0xfc17('0x23')](handleEntityNotFound(_0x5e0d33,null))[_0xfc17('0x23')](function(_0x7dbb81){if(_0x7dbb81){return _0x7dbb81[_0xfc17('0x4f')](_0xa12d71[_0xfc17('0x48')]['ids'],_[_0xfc17('0x52')](_0xa12d71['body'],[_0xfc17('0x53'),'id'])||{});}})[_0xfc17('0x23')](respondWithResult(_0x5e0d33,null))[_0xfc17('0x40')](handleError(_0x5e0d33,null));};exports['getContacts']=function(_0x4dedeb,_0x1d57a8,_0xfda52f){var _0x302678={};var _0x2c22b3={};var _0x535d93;var _0x5924c3;return db[_0xfc17('0x2e')][_0xfc17('0x54')]({'where':{'id':_0x4dedeb[_0xfc17('0x42')]['id']}})[_0xfc17('0x23')](handleEntityNotFound(_0x1d57a8,null))[_0xfc17('0x23')](function(_0x2c4456){if(_0x2c4456){_0x535d93=_0x2c4456;_0x2c22b3[_0xfc17('0x31')]=_[_0xfc17('0x2f')](db['CmContact'][_0xfc17('0x43')]);_0x2c22b3[_0xfc17('0x32')]=_[_0xfc17('0x2f')](_0x4dedeb[_0xfc17('0x32')]);_0x2c22b3['filters']=_['intersection'](_0x2c22b3[_0xfc17('0x31')],_0x2c22b3[_0xfc17('0x32')]);_0x302678['attributes']=_[_0xfc17('0x30')](_0x2c22b3['model'],qs[_0xfc17('0x44')](_0x4dedeb['query'][_0xfc17('0x44')]));_0x302678[_0xfc17('0x33')]=_0x302678[_0xfc17('0x33')][_0xfc17('0x45')]?_0x302678['attributes']:_0x2c22b3[_0xfc17('0x31')];_0x302678[_0xfc17('0x35')]=qs[_0xfc17('0x36')](_0x4dedeb[_0xfc17('0x32')][_0xfc17('0x36')]);_0x302678['where']=qs[_0xfc17('0x37')](_[_0xfc17('0x38')](_0x4dedeb[_0xfc17('0x32')],_0x2c22b3[_0xfc17('0x37')]));if(_0x4dedeb[_0xfc17('0x32')][_0xfc17('0x39')]){_0x302678[_0xfc17('0x3a')]=_[_0xfc17('0x3b')](_0x302678[_0xfc17('0x3a')],{'$or':_[_0xfc17('0x55')](_0x302678[_0xfc17('0x33')],function(_0x74ad5f){var _0x163fcf={};_0x163fcf[_0x74ad5f]={'$like':'%'+_0x4dedeb[_0xfc17('0x32')]['filter']+'%'};return _0x163fcf;})});}_0x302678=_[_0xfc17('0x3b')]({},_0x302678,_0x4dedeb[_0xfc17('0x3c')]);return _0x535d93['getContacts'](_0x302678);}})['then'](function(_0x3b4d37){if(_0x3b4d37){_0x5924c3=_0x3b4d37[_0xfc17('0x45')];if(!_0x4dedeb[_0xfc17('0x32')]['hasOwnProperty'](_0xfc17('0x34'))){_0x302678['limit']=qs[_0xfc17('0x1d')](_0x4dedeb[_0xfc17('0x32')][_0xfc17('0x1d')]);_0x302678[_0xfc17('0x1a')]=qs[_0xfc17('0x1a')](_0x4dedeb[_0xfc17('0x32')]['offset']);}return _0x535d93[_0xfc17('0x56')](_0x302678);}})[_0xfc17('0x23')](function(_0x274b18){if(_0x274b18){return _0x274b18?{'count':_0x5924c3,'rows':_0x274b18}:null;}})[_0xfc17('0x23')](respondWithResult(_0x1d57a8,null))[_0xfc17('0x40')](handleError(_0x1d57a8,null));};