1812efc2174b342cbf674717cc27627819a8cc1d
[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 _0xd0a4=['status','end','count','offset','limit','Content-Range','json','apply','save','update','then','destroy','get','Companies','UserProfileResource','error','stack','name','send','index','describe','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','filter','options','CmCompany','includeAll','findAll','rows','catch','show','params','rawAttributes','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','body','addContacts','ids','omit','getContacts','CmContact','map','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','fs-extra','lodash','crypto','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x30fad0,_0x45077b){var _0x2b8d18=function(_0x3b2f07){while(--_0x3b2f07){_0x30fad0['push'](_0x30fad0['shift']());}};_0x2b8d18(++_0x45077b);}(_0xd0a4,0x13e));var _0x4d0a=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xd0a4[_0x501510];return _0x1e6ee5;};'use strict';var emlformat=require(_0x4d0a('0x0'));var rimraf=require(_0x4d0a('0x1'));var zipdir=require(_0x4d0a('0x2'));var jsonpatch=require(_0x4d0a('0x3'));var rp=require(_0x4d0a('0x4'));var moment=require(_0x4d0a('0x5'));var BPromise=require(_0x4d0a('0x6'));var Mustache=require('mustache');var util=require(_0x4d0a('0x7'));var path=require(_0x4d0a('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4d0a('0x9'));var _=require(_0x4d0a('0xa'));var squel=require('squel');var crypto=require(_0x4d0a('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x4d0a('0xc'));var querystring=require(_0x4d0a('0xd'));var Papa=require(_0x4d0a('0xe'));var Redis=require('ioredis');var authService=require(_0x4d0a('0xf'));var qs=require(_0x4d0a('0x10'));var as=require(_0x4d0a('0x11'));var hardwareService=require(_0x4d0a('0x12'));var logger=require(_0x4d0a('0x13'))(_0x4d0a('0x14'));var utils=require(_0x4d0a('0x15'));var config=require(_0x4d0a('0x16'));var licenseUtil=require(_0x4d0a('0x17'));var db=require(_0x4d0a('0x18'))['db'];function respondWithStatusCode(_0x56ec42,_0x4c2a57){_0x4c2a57=_0x4c2a57||0xcc;return function(_0x1d535c){if(_0x1d535c){return _0x56ec42[_0x4d0a('0x19')](_0x4c2a57);}return _0x56ec42[_0x4d0a('0x1a')](_0x4c2a57)[_0x4d0a('0x1b')]();};}function respondWithResult(_0x3592d8,_0x5d9654){_0x5d9654=_0x5d9654||0xc8;return function(_0x55cc54){if(_0x55cc54){return _0x3592d8[_0x4d0a('0x1a')](_0x5d9654)['json'](_0x55cc54);}};}function respondWithFilteredResult(_0x43968d,_0x26ac0b){return function(_0x28c6fd){if(_0x28c6fd){var _0x3e8ebd=_0x28c6fd[_0x4d0a('0x1c')],_0x43c7e6=_0x26ac0b[_0x4d0a('0x1d')],_0x16966b=_0x26ac0b['offset']+_0x26ac0b[_0x4d0a('0x1e')],_0x42ed8a;if(_0x16966b>=_0x3e8ebd){_0x16966b=_0x3e8ebd;_0x42ed8a=0xc8;}else{_0x42ed8a=0xce;}_0x43968d['status'](_0x42ed8a);return _0x43968d['set'](_0x4d0a('0x1f'),_0x43c7e6+'-'+_0x16966b+'/'+_0x3e8ebd)[_0x4d0a('0x20')](_0x28c6fd);}return null;};}function patchUpdates(_0x9f9921){return function(_0x5128ef){try{jsonpatch[_0x4d0a('0x21')](_0x5128ef,_0x9f9921,!![]);}catch(_0x496a45){return BPromise['reject'](_0x496a45);}return _0x5128ef[_0x4d0a('0x22')]();};}function saveUpdates(_0x39b963,_0x5cc6d1){return function(_0x4256a0){if(_0x4256a0){return _0x4256a0[_0x4d0a('0x23')](_0x39b963)[_0x4d0a('0x24')](function(_0x5072f4){return _0x5072f4;});}return null;};}function removeEntity(_0xf38cd0,_0x588dcf){return function(_0x4ab749){if(_0x4ab749){return _0x4ab749[_0x4d0a('0x25')]()[_0x4d0a('0x24')](function(){var _0x2bb967=_0x4ab749[_0x4d0a('0x26')]({'plain':!![]});var _0x13edff=_0x4d0a('0x27');return db[_0x4d0a('0x28')]['destroy']({'where':{'type':_0x13edff,'resourceId':_0x2bb967['id']}})[_0x4d0a('0x24')](function(){return _0x4ab749;});})[_0x4d0a('0x24')](function(){_0xf38cd0[_0x4d0a('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x196659,_0x1c50b4){return function(_0x342998){if(!_0x342998){_0x196659[_0x4d0a('0x19')](0x194);}return _0x342998;};}function handleError(_0xe6b132,_0x30b42e){_0x30b42e=_0x30b42e||0x1f4;return function(_0x216f3b){logger[_0x4d0a('0x29')](_0x216f3b[_0x4d0a('0x2a')]);if(_0x216f3b[_0x4d0a('0x2b')]){delete _0x216f3b[_0x4d0a('0x2b')];}_0xe6b132[_0x4d0a('0x1a')](_0x30b42e)[_0x4d0a('0x2c')](_0x216f3b);};}exports[_0x4d0a('0x2d')]=function(_0x340244,_0x5eb5cc){var _0x163b15={},_0x248d4f={},_0x4646bc={'count':0x0,'rows':[]};return db['CmCompany'][_0x4d0a('0x2e')]()[_0x4d0a('0x24')](function(_0x52bbb4){_0x248d4f['model']=_[_0x4d0a('0x2f')](_0x52bbb4);_0x248d4f[_0x4d0a('0x30')]=_[_0x4d0a('0x2f')](_0x340244['query']);_0x248d4f[_0x4d0a('0x31')]=_[_0x4d0a('0x32')](_0x248d4f[_0x4d0a('0x33')],_0x248d4f['query']);_0x163b15[_0x4d0a('0x34')]=_[_0x4d0a('0x32')](_0x248d4f[_0x4d0a('0x33')],qs[_0x4d0a('0x35')](_0x340244[_0x4d0a('0x30')][_0x4d0a('0x35')]));_0x163b15[_0x4d0a('0x34')]=_0x163b15[_0x4d0a('0x34')][_0x4d0a('0x36')]?_0x163b15[_0x4d0a('0x34')]:_0x248d4f[_0x4d0a('0x33')];if(!_0x340244['query'][_0x4d0a('0x37')](_0x4d0a('0x38'))){_0x163b15['limit']=qs[_0x4d0a('0x1e')](_0x340244[_0x4d0a('0x30')][_0x4d0a('0x1e')]);_0x163b15[_0x4d0a('0x1d')]=qs['offset'](_0x340244[_0x4d0a('0x30')][_0x4d0a('0x1d')]);}_0x163b15[_0x4d0a('0x39')]=qs[_0x4d0a('0x3a')](_0x340244['query']['sort']);_0x163b15['where']=qs[_0x4d0a('0x31')](_[_0x4d0a('0x3b')](_0x340244[_0x4d0a('0x30')],_0x248d4f[_0x4d0a('0x31')]),_0x52bbb4);if(_0x340244[_0x4d0a('0x30')]['filter']){_0x163b15[_0x4d0a('0x3c')]=_[_0x4d0a('0x3d')](_0x163b15[_0x4d0a('0x3c')],{'$or':_['map'](_0x163b15[_0x4d0a('0x34')],function(_0x23e9aa){var _0x260f17={};_0x260f17[_0x23e9aa]={'$like':'%'+_0x340244['query'][_0x4d0a('0x3e')]+'%'};return _0x260f17;})});}_0x163b15=_[_0x4d0a('0x3d')]({},_0x163b15,_0x340244[_0x4d0a('0x3f')]);var _0x11964f={'where':_0x163b15[_0x4d0a('0x3c')]};return db[_0x4d0a('0x40')][_0x4d0a('0x1c')](_0x11964f)[_0x4d0a('0x24')](function(_0x1fee21){_0x4646bc[_0x4d0a('0x1c')]=_0x1fee21;if(_0x340244[_0x4d0a('0x30')][_0x4d0a('0x41')]){_0x163b15['include']=[{'all':!![]}];}return db['CmCompany'][_0x4d0a('0x42')](_0x163b15);})[_0x4d0a('0x24')](function(_0xfc16d0){_0x4646bc[_0x4d0a('0x43')]=_0xfc16d0;return _0x4646bc;})[_0x4d0a('0x24')](respondWithFilteredResult(_0x5eb5cc,_0x163b15))[_0x4d0a('0x44')](handleError(_0x5eb5cc,null));})[_0x4d0a('0x44')](handleError(_0x5eb5cc,null));};exports[_0x4d0a('0x45')]=function(_0x290732,_0x29a17e){var _0x51b09d={'raw':![],'where':{'id':_0x290732[_0x4d0a('0x46')]['id']}},_0x5babb8={};_0x5babb8[_0x4d0a('0x33')]=_[_0x4d0a('0x2f')](db[_0x4d0a('0x40')][_0x4d0a('0x47')]);_0x5babb8[_0x4d0a('0x30')]=_[_0x4d0a('0x2f')](_0x290732[_0x4d0a('0x30')]);_0x5babb8[_0x4d0a('0x31')]=_[_0x4d0a('0x32')](_0x5babb8['model'],_0x5babb8['query']);_0x51b09d[_0x4d0a('0x34')]=_[_0x4d0a('0x32')](_0x5babb8['model'],qs[_0x4d0a('0x35')](_0x290732[_0x4d0a('0x30')][_0x4d0a('0x35')]));_0x51b09d[_0x4d0a('0x34')]=_0x51b09d['attributes'][_0x4d0a('0x36')]?_0x51b09d['attributes']:_0x5babb8['model'];if(_0x290732[_0x4d0a('0x30')][_0x4d0a('0x41')]){_0x51b09d['include']=[{'all':!![]}];}_0x51b09d=_[_0x4d0a('0x3d')]({},_0x51b09d,_0x290732[_0x4d0a('0x3f')]);return db[_0x4d0a('0x40')][_0x4d0a('0x48')](_0x51b09d)['then'](handleEntityNotFound(_0x29a17e,null))[_0x4d0a('0x24')](respondWithResult(_0x29a17e,null))[_0x4d0a('0x44')](handleError(_0x29a17e,null));};exports[_0x4d0a('0x49')]=function(_0x378367,_0x75be2e){return db[_0x4d0a('0x40')][_0x4d0a('0x49')](_0x378367['body'],{})[_0x4d0a('0x24')](function(_0x138085){var _0x10ad4e=_0x378367[_0x4d0a('0x4a')]['get']({'plain':!![]});if(!_0x10ad4e)throw new Error(_0x4d0a('0x4b'));if(_0x10ad4e[_0x4d0a('0x4c')]==='user'){var _0x4f6c1b=_0x138085[_0x4d0a('0x26')]({'plain':!![]});var _0x28bb5e=_0x4d0a('0x27');return db[_0x4d0a('0x4d')][_0x4d0a('0x48')]({'where':{'name':_0x28bb5e,'userProfileId':_0x10ad4e['userProfileId']},'raw':!![]})[_0x4d0a('0x24')](function(_0x4d9cea){if(_0x4d9cea&&_0x4d9cea[_0x4d0a('0x4e')]===0x0){return db['UserProfileResource'][_0x4d0a('0x49')]({'name':_0x4f6c1b['name'],'resourceId':_0x4f6c1b['id'],'type':_0x4d9cea[_0x4d0a('0x2b')],'sectionId':_0x4d9cea['id']},{})[_0x4d0a('0x24')](function(){return _0x138085;});}else{return _0x138085;}})[_0x4d0a('0x44')](function(_0x297335){logger[_0x4d0a('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x297335);throw _0x297335;});}return _0x138085;})[_0x4d0a('0x24')](respondWithResult(_0x75be2e,0xc9))['catch'](handleError(_0x75be2e,null));};exports[_0x4d0a('0x23')]=function(_0x18163d,_0x50f758){if(_0x18163d[_0x4d0a('0x4f')]['id']){delete _0x18163d[_0x4d0a('0x4f')]['id'];}return db[_0x4d0a('0x40')][_0x4d0a('0x48')]({'where':{'id':_0x18163d['params']['id']}})[_0x4d0a('0x24')](handleEntityNotFound(_0x50f758,null))[_0x4d0a('0x24')](saveUpdates(_0x18163d['body'],null))[_0x4d0a('0x24')](respondWithResult(_0x50f758,null))['catch'](handleError(_0x50f758,null));};exports[_0x4d0a('0x25')]=function(_0x8f0417,_0x2ba0b7){return db[_0x4d0a('0x40')][_0x4d0a('0x48')]({'where':{'id':_0x8f0417[_0x4d0a('0x46')]['id']}})[_0x4d0a('0x24')](handleEntityNotFound(_0x2ba0b7,null))[_0x4d0a('0x24')](removeEntity(_0x2ba0b7,null))[_0x4d0a('0x44')](handleError(_0x2ba0b7,null));};exports[_0x4d0a('0x2e')]=function(_0x108b0b,_0x25713c){return db['CmCompany'][_0x4d0a('0x2e')]()[_0x4d0a('0x24')](respondWithResult(_0x25713c,null))[_0x4d0a('0x44')](handleError(_0x25713c,null));};exports['addContacts']=function(_0x1b61bd,_0x4702fa,_0x233451){return db['CmContact'][_0x4d0a('0x48')]({'where':{'id':_0x1b61bd[_0x4d0a('0x46')]['id']}})[_0x4d0a('0x24')](handleEntityNotFound(_0x4702fa,null))[_0x4d0a('0x24')](function(_0x165637){if(_0x165637){return _0x165637[_0x4d0a('0x50')](_0x1b61bd[_0x4d0a('0x4f')][_0x4d0a('0x51')],_[_0x4d0a('0x52')](_0x1b61bd['body'],[_0x4d0a('0x51'),'id'])||{});}})[_0x4d0a('0x24')](respondWithResult(_0x4702fa,null))[_0x4d0a('0x44')](handleError(_0x4702fa,null));};exports[_0x4d0a('0x53')]=function(_0x9f26bb,_0x5f4422,_0x3594a6){var _0x4bb127={};var _0x1b6928={};var _0x35c78f;var _0x751801;return db[_0x4d0a('0x40')]['findOne']({'where':{'id':_0x9f26bb[_0x4d0a('0x46')]['id']}})[_0x4d0a('0x24')](handleEntityNotFound(_0x5f4422,null))['then'](function(_0x57229c){if(_0x57229c){_0x35c78f=_0x57229c;_0x1b6928[_0x4d0a('0x33')]=_[_0x4d0a('0x2f')](db[_0x4d0a('0x54')][_0x4d0a('0x47')]);_0x1b6928[_0x4d0a('0x30')]=_[_0x4d0a('0x2f')](_0x9f26bb[_0x4d0a('0x30')]);_0x1b6928['filters']=_[_0x4d0a('0x32')](_0x1b6928[_0x4d0a('0x33')],_0x1b6928[_0x4d0a('0x30')]);_0x4bb127[_0x4d0a('0x34')]=_[_0x4d0a('0x32')](_0x1b6928[_0x4d0a('0x33')],qs[_0x4d0a('0x35')](_0x9f26bb[_0x4d0a('0x30')][_0x4d0a('0x35')]));_0x4bb127[_0x4d0a('0x34')]=_0x4bb127['attributes'][_0x4d0a('0x36')]?_0x4bb127[_0x4d0a('0x34')]:_0x1b6928[_0x4d0a('0x33')];_0x4bb127['order']=qs[_0x4d0a('0x3a')](_0x9f26bb[_0x4d0a('0x30')]['sort']);_0x4bb127[_0x4d0a('0x3c')]=qs[_0x4d0a('0x31')](_[_0x4d0a('0x3b')](_0x9f26bb[_0x4d0a('0x30')],_0x1b6928[_0x4d0a('0x31')]));if(_0x9f26bb[_0x4d0a('0x30')][_0x4d0a('0x3e')]){_0x4bb127[_0x4d0a('0x3c')]=_['merge'](_0x4bb127[_0x4d0a('0x3c')],{'$or':_[_0x4d0a('0x55')](_0x4bb127['attributes'],function(_0x3aca9f){var _0x3c3e00={};_0x3c3e00[_0x3aca9f]={'$like':'%'+_0x9f26bb[_0x4d0a('0x30')]['filter']+'%'};return _0x3c3e00;})});}_0x4bb127=_['merge']({},_0x4bb127,_0x9f26bb[_0x4d0a('0x3f')]);return _0x35c78f[_0x4d0a('0x53')](_0x4bb127);}})['then'](function(_0xdc2cab){if(_0xdc2cab){_0x751801=_0xdc2cab[_0x4d0a('0x36')];if(!_0x9f26bb[_0x4d0a('0x30')][_0x4d0a('0x37')](_0x4d0a('0x38'))){_0x4bb127[_0x4d0a('0x1e')]=qs[_0x4d0a('0x1e')](_0x9f26bb[_0x4d0a('0x30')]['limit']);_0x4bb127['offset']=qs[_0x4d0a('0x1d')](_0x9f26bb[_0x4d0a('0x30')][_0x4d0a('0x1d')]);}return _0x35c78f['getContacts'](_0x4bb127);}})['then'](function(_0x50df8a){if(_0x50df8a){return _0x50df8a?{'count':_0x751801,'rows':_0x50df8a}:null;}})[_0x4d0a('0x24')](respondWithResult(_0x5f4422,null))[_0x4d0a('0x44')](handleError(_0x5f4422,null));};