Built motion from commit ab870f9e.|2.5.44
[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 _0x7dda=['findAll','rows','catch','show','rawAttributes','intersection','find','create','CmCompany','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','error','params','CmContact','ids','getContacts','findOne','sort','filter','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','limit','set','apply','save','update','then','get','Companies','UserProfileResource','destroy','stack','name','send','index','describe','model','keys','query','attributes','fields','length','hasOwnProperty','nolimit','order','filters','pick','merge','where','map','options','count','includeAll','include'];(function(_0x42235f,_0x5dabfd){var _0x3f5fab=function(_0x358fd7){while(--_0x358fd7){_0x42235f['push'](_0x42235f['shift']());}};_0x3f5fab(++_0x5dabfd);}(_0x7dda,0x6c));var _0xa7dd=function(_0x547030,_0x3aff53){_0x547030=_0x547030-0x0;var _0x10140b=_0x7dda[_0x547030];return _0x10140b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa7dd('0x0'));var zipdir=require(_0xa7dd('0x1'));var jsonpatch=require(_0xa7dd('0x2'));var rp=require(_0xa7dd('0x3'));var moment=require(_0xa7dd('0x4'));var BPromise=require(_0xa7dd('0x5'));var Mustache=require(_0xa7dd('0x6'));var util=require(_0xa7dd('0x7'));var path=require(_0xa7dd('0x8'));var sox=require(_0xa7dd('0x9'));var csv=require(_0xa7dd('0xa'));var ejs=require(_0xa7dd('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa7dd('0xc'));var squel=require(_0xa7dd('0xd'));var crypto=require(_0xa7dd('0xe'));var jsforce=require(_0xa7dd('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xa7dd('0xa'));var querystring=require(_0xa7dd('0x10'));var Papa=require(_0xa7dd('0x11'));var Redis=require('ioredis');var authService=require(_0xa7dd('0x12'));var qs=require(_0xa7dd('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa7dd('0x14'));var logger=require('../../config/logger')(_0xa7dd('0x15'));var utils=require(_0xa7dd('0x16'));var config=require(_0xa7dd('0x17'));var licenseUtil=require(_0xa7dd('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x23d1f7,_0x376843){_0x376843=_0x376843||0xcc;return function(_0x4a27f8){if(_0x4a27f8){return _0x23d1f7[_0xa7dd('0x19')](_0x376843);}return _0x23d1f7[_0xa7dd('0x1a')](_0x376843)['end']();};}function respondWithResult(_0x357f9a,_0xc786a7){_0xc786a7=_0xc786a7||0xc8;return function(_0x5b2a10){if(_0x5b2a10){return _0x357f9a[_0xa7dd('0x1a')](_0xc786a7)[_0xa7dd('0x1b')](_0x5b2a10);}};}function respondWithFilteredResult(_0x14755d,_0x52ef4c){return function(_0x3e2713){if(_0x3e2713){var _0x5973c0=typeof _0x52ef4c[_0xa7dd('0x1c')]==='undefined'&&typeof _0x52ef4c[_0xa7dd('0x1d')]==='undefined';var _0x5f517b=_0x3e2713['count'];var _0x3d54f9=_0x5973c0?0x0:_0x52ef4c[_0xa7dd('0x1c')];var _0x4e8fbd=_0x5973c0?_0x3e2713['count']:_0x52ef4c[_0xa7dd('0x1c')]+_0x52ef4c['limit'];var _0x17305e;if(_0x4e8fbd>=_0x5f517b){_0x4e8fbd=_0x5f517b;_0x17305e=0xc8;}else{_0x17305e=0xce;}_0x14755d[_0xa7dd('0x1a')](_0x17305e);return _0x14755d[_0xa7dd('0x1e')]('Content-Range',_0x3d54f9+'-'+_0x4e8fbd+'/'+_0x5f517b)[_0xa7dd('0x1b')](_0x3e2713);}return null;};}function patchUpdates(_0x1448b3){return function(_0x11af94){try{jsonpatch[_0xa7dd('0x1f')](_0x11af94,_0x1448b3,!![]);}catch(_0x11c603){return BPromise['reject'](_0x11c603);}return _0x11af94[_0xa7dd('0x20')]();};}function saveUpdates(_0x519376,_0x42274a){return function(_0x3ff21f){if(_0x3ff21f){return _0x3ff21f[_0xa7dd('0x21')](_0x519376)[_0xa7dd('0x22')](function(_0x3d0143){return _0x3d0143;});}return null;};}function removeEntity(_0x3771f0,_0x4e5542){return function(_0x79c7f9){if(_0x79c7f9){return _0x79c7f9['destroy']()[_0xa7dd('0x22')](function(){var _0x6fbfe0=_0x79c7f9[_0xa7dd('0x23')]({'plain':!![]});var _0xfeced0=_0xa7dd('0x24');return db[_0xa7dd('0x25')][_0xa7dd('0x26')]({'where':{'type':_0xfeced0,'resourceId':_0x6fbfe0['id']}})[_0xa7dd('0x22')](function(){return _0x79c7f9;});})['then'](function(){_0x3771f0[_0xa7dd('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x32cfe8,_0x30cb75){return function(_0xa2d781){if(!_0xa2d781){_0x32cfe8[_0xa7dd('0x19')](0x194);}return _0xa2d781;};}function handleError(_0x337808,_0x475bb5){_0x475bb5=_0x475bb5||0x1f4;return function(_0x23723f){logger['error'](_0x23723f[_0xa7dd('0x27')]);if(_0x23723f[_0xa7dd('0x28')]){delete _0x23723f['name'];}_0x337808[_0xa7dd('0x1a')](_0x475bb5)[_0xa7dd('0x29')](_0x23723f);};}exports[_0xa7dd('0x2a')]=function(_0xa5481,_0xd6a17c){var _0xeb0745={},_0x2095a6={},_0x110cfb={'count':0x0,'rows':[]};return db['CmCompany'][_0xa7dd('0x2b')]()['then'](function(_0x2f8256){_0x2095a6[_0xa7dd('0x2c')]=_[_0xa7dd('0x2d')](_0x2f8256);_0x2095a6[_0xa7dd('0x2e')]=_['keys'](_0xa5481['query']);_0x2095a6['filters']=_['intersection'](_0x2095a6[_0xa7dd('0x2c')],_0x2095a6['query']);_0xeb0745[_0xa7dd('0x2f')]=_['intersection'](_0x2095a6['model'],qs[_0xa7dd('0x30')](_0xa5481[_0xa7dd('0x2e')][_0xa7dd('0x30')]));_0xeb0745['attributes']=_0xeb0745['attributes'][_0xa7dd('0x31')]?_0xeb0745[_0xa7dd('0x2f')]:_0x2095a6['model'];if(!_0xa5481[_0xa7dd('0x2e')][_0xa7dd('0x32')](_0xa7dd('0x33'))){_0xeb0745['limit']=qs[_0xa7dd('0x1d')](_0xa5481[_0xa7dd('0x2e')][_0xa7dd('0x1d')]);_0xeb0745['offset']=qs['offset'](_0xa5481['query'][_0xa7dd('0x1c')]);}_0xeb0745[_0xa7dd('0x34')]=qs['sort'](_0xa5481[_0xa7dd('0x2e')]['sort']);_0xeb0745['where']=qs[_0xa7dd('0x35')](_[_0xa7dd('0x36')](_0xa5481[_0xa7dd('0x2e')],_0x2095a6[_0xa7dd('0x35')]),_0x2f8256);if(_0xa5481[_0xa7dd('0x2e')]['filter']){_0xeb0745['where']=_[_0xa7dd('0x37')](_0xeb0745[_0xa7dd('0x38')],{'$or':_[_0xa7dd('0x39')](_0xeb0745['attributes'],function(_0x3cdbe3){var _0x20fa63={};_0x20fa63[_0x3cdbe3]={'$like':'%'+_0xa5481[_0xa7dd('0x2e')]['filter']+'%'};return _0x20fa63;})});}_0xeb0745=_[_0xa7dd('0x37')]({},_0xeb0745,_0xa5481[_0xa7dd('0x3a')]);var _0xd59b77={'where':_0xeb0745[_0xa7dd('0x38')]};return db['CmCompany']['count'](_0xd59b77)['then'](function(_0xbce821){_0x110cfb[_0xa7dd('0x3b')]=_0xbce821;if(_0xa5481['query'][_0xa7dd('0x3c')]){_0xeb0745[_0xa7dd('0x3d')]=[{'all':!![]}];}return db['CmCompany'][_0xa7dd('0x3e')](_0xeb0745);})[_0xa7dd('0x22')](function(_0x2238ca){_0x110cfb[_0xa7dd('0x3f')]=_0x2238ca;return _0x110cfb;})['then'](respondWithFilteredResult(_0xd6a17c,_0xeb0745))[_0xa7dd('0x40')](handleError(_0xd6a17c,null));})['catch'](handleError(_0xd6a17c,null));};exports[_0xa7dd('0x41')]=function(_0x56fe4e,_0xea03ec){var _0x4de598={'raw':![],'where':{'id':_0x56fe4e['params']['id']}},_0x34d844={};_0x34d844[_0xa7dd('0x2c')]=_[_0xa7dd('0x2d')](db['CmCompany'][_0xa7dd('0x42')]);_0x34d844[_0xa7dd('0x2e')]=_[_0xa7dd('0x2d')](_0x56fe4e['query']);_0x34d844[_0xa7dd('0x35')]=_[_0xa7dd('0x43')](_0x34d844[_0xa7dd('0x2c')],_0x34d844[_0xa7dd('0x2e')]);_0x4de598[_0xa7dd('0x2f')]=_['intersection'](_0x34d844[_0xa7dd('0x2c')],qs['fields'](_0x56fe4e[_0xa7dd('0x2e')][_0xa7dd('0x30')]));_0x4de598[_0xa7dd('0x2f')]=_0x4de598['attributes']['length']?_0x4de598['attributes']:_0x34d844['model'];if(_0x56fe4e[_0xa7dd('0x2e')][_0xa7dd('0x3c')]){_0x4de598[_0xa7dd('0x3d')]=[{'all':!![]}];}_0x4de598=_[_0xa7dd('0x37')]({},_0x4de598,_0x56fe4e[_0xa7dd('0x3a')]);return db['CmCompany'][_0xa7dd('0x44')](_0x4de598)[_0xa7dd('0x22')](handleEntityNotFound(_0xea03ec,null))[_0xa7dd('0x22')](respondWithResult(_0xea03ec,null))[_0xa7dd('0x40')](handleError(_0xea03ec,null));};exports[_0xa7dd('0x45')]=function(_0xf69ff8,_0x56b528){return db[_0xa7dd('0x46')][_0xa7dd('0x45')](_0xf69ff8[_0xa7dd('0x47')],{})[_0xa7dd('0x22')](function(_0x5dc0ac){var _0x3252a6=_0xf69ff8['user']['get']({'plain':!![]});if(!_0x3252a6)throw new Error(_0xa7dd('0x48'));if(_0x3252a6['role']===_0xa7dd('0x49')){var _0x1c2c23=_0x5dc0ac[_0xa7dd('0x23')]({'plain':!![]});var _0x22051f=_0xa7dd('0x24');return db[_0xa7dd('0x4a')]['find']({'where':{'name':_0x22051f,'userProfileId':_0x3252a6[_0xa7dd('0x4b')]},'raw':!![]})[_0xa7dd('0x22')](function(_0x46d871){if(_0x46d871&&_0x46d871[_0xa7dd('0x4c')]===0x0){return db[_0xa7dd('0x25')][_0xa7dd('0x45')]({'name':_0x1c2c23['name'],'resourceId':_0x1c2c23['id'],'type':_0x46d871['name'],'sectionId':_0x46d871['id']},{})[_0xa7dd('0x22')](function(){return _0x5dc0ac;});}else{return _0x5dc0ac;}})[_0xa7dd('0x40')](function(_0x11f095){logger[_0xa7dd('0x4d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x11f095);throw _0x11f095;});}return _0x5dc0ac;})['then'](respondWithResult(_0x56b528,0xc9))['catch'](handleError(_0x56b528,null));};exports['update']=function(_0x4be83d,_0x3becdc){if(_0x4be83d[_0xa7dd('0x47')]['id']){delete _0x4be83d[_0xa7dd('0x47')]['id'];}return db[_0xa7dd('0x46')][_0xa7dd('0x44')]({'where':{'id':_0x4be83d[_0xa7dd('0x4e')]['id']}})[_0xa7dd('0x22')](handleEntityNotFound(_0x3becdc,null))[_0xa7dd('0x22')](saveUpdates(_0x4be83d[_0xa7dd('0x47')],null))[_0xa7dd('0x22')](respondWithResult(_0x3becdc,null))[_0xa7dd('0x40')](handleError(_0x3becdc,null));};exports[_0xa7dd('0x26')]=function(_0x15bac7,_0x2648ae){return db[_0xa7dd('0x46')]['find']({'where':{'id':_0x15bac7[_0xa7dd('0x4e')]['id']}})[_0xa7dd('0x22')](handleEntityNotFound(_0x2648ae,null))[_0xa7dd('0x22')](removeEntity(_0x2648ae,null))[_0xa7dd('0x40')](handleError(_0x2648ae,null));};exports[_0xa7dd('0x2b')]=function(_0xdaa9f,_0x1a8cbc){return db[_0xa7dd('0x46')][_0xa7dd('0x2b')]()[_0xa7dd('0x22')](respondWithResult(_0x1a8cbc,null))[_0xa7dd('0x40')](handleError(_0x1a8cbc,null));};exports['addContacts']=function(_0x2b339a,_0x2890d1,_0x3cd297){return db[_0xa7dd('0x4f')][_0xa7dd('0x44')]({'where':{'id':_0x2b339a['params']['id']}})[_0xa7dd('0x22')](handleEntityNotFound(_0x2890d1,null))['then'](function(_0x353062){if(_0x353062){return _0x353062['addContacts'](_0x2b339a[_0xa7dd('0x47')][_0xa7dd('0x50')],_['omit'](_0x2b339a[_0xa7dd('0x47')],[_0xa7dd('0x50'),'id'])||{});}})[_0xa7dd('0x22')](respondWithResult(_0x2890d1,null))[_0xa7dd('0x40')](handleError(_0x2890d1,null));};exports[_0xa7dd('0x51')]=function(_0x270851,_0x51ea61,_0x3eb33b){var _0x4fb5c2={};var _0x263142={};var _0x525b78;var _0x2b3ea2;return db[_0xa7dd('0x46')][_0xa7dd('0x52')]({'where':{'id':_0x270851['params']['id']}})[_0xa7dd('0x22')](handleEntityNotFound(_0x51ea61,null))[_0xa7dd('0x22')](function(_0x1f4e0d){if(_0x1f4e0d){_0x525b78=_0x1f4e0d;_0x263142[_0xa7dd('0x2c')]=_[_0xa7dd('0x2d')](db[_0xa7dd('0x4f')]['rawAttributes']);_0x263142[_0xa7dd('0x2e')]=_[_0xa7dd('0x2d')](_0x270851[_0xa7dd('0x2e')]);_0x263142[_0xa7dd('0x35')]=_['intersection'](_0x263142[_0xa7dd('0x2c')],_0x263142[_0xa7dd('0x2e')]);_0x4fb5c2[_0xa7dd('0x2f')]=_[_0xa7dd('0x43')](_0x263142[_0xa7dd('0x2c')],qs['fields'](_0x270851['query']['fields']));_0x4fb5c2[_0xa7dd('0x2f')]=_0x4fb5c2['attributes'][_0xa7dd('0x31')]?_0x4fb5c2[_0xa7dd('0x2f')]:_0x263142[_0xa7dd('0x2c')];_0x4fb5c2[_0xa7dd('0x34')]=qs['sort'](_0x270851[_0xa7dd('0x2e')][_0xa7dd('0x53')]);_0x4fb5c2[_0xa7dd('0x38')]=qs[_0xa7dd('0x35')](_[_0xa7dd('0x36')](_0x270851['query'],_0x263142[_0xa7dd('0x35')]));if(_0x270851[_0xa7dd('0x2e')][_0xa7dd('0x54')]){_0x4fb5c2[_0xa7dd('0x38')]=_['merge'](_0x4fb5c2[_0xa7dd('0x38')],{'$or':_[_0xa7dd('0x39')](_0x4fb5c2['attributes'],function(_0x2f6cb4){var _0x4be600={};_0x4be600[_0x2f6cb4]={'$like':'%'+_0x270851[_0xa7dd('0x2e')][_0xa7dd('0x54')]+'%'};return _0x4be600;})});}_0x4fb5c2=_['merge']({},_0x4fb5c2,_0x270851[_0xa7dd('0x3a')]);return _0x525b78[_0xa7dd('0x51')](_0x4fb5c2);}})[_0xa7dd('0x22')](function(_0x1c7a2b){if(_0x1c7a2b){_0x2b3ea2=_0x1c7a2b[_0xa7dd('0x31')];if(!_0x270851[_0xa7dd('0x2e')][_0xa7dd('0x32')]('nolimit')){_0x4fb5c2['limit']=qs['limit'](_0x270851[_0xa7dd('0x2e')][_0xa7dd('0x1d')]);_0x4fb5c2[_0xa7dd('0x1c')]=qs[_0xa7dd('0x1c')](_0x270851['query']['offset']);}return _0x525b78[_0xa7dd('0x51')](_0x4fb5c2);}})[_0xa7dd('0x22')](function(_0x3db592){if(_0x3db592){return _0x3db592?{'count':_0x2b3ea2,'rows':_0x3db592}:null;}})[_0xa7dd('0x22')](respondWithResult(_0x51ea61,null))[_0xa7dd('0x40')](handleError(_0x51ea61,null));};