Built motion from commit 775e2a94.|2.6.3
[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 _0x768a=['lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','update','destroy','get','Companies','UserProfileResource','then','error','stack','name','send','index','CmCompany','describe','model','keys','query','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','filter','merge','map','options','includeAll','include','rows','catch','show','rawAttributes','create','body','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','params','CmContact','addContacts','ids','omit','getContacts','findOne','length','nolimit','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra'];(function(_0x2714ec,_0x36daa4){var _0x2608e5=function(_0x408468){while(--_0x408468){_0x2714ec['push'](_0x2714ec['shift']());}};_0x2608e5(++_0x36daa4);}(_0x768a,0x157));var _0xa768=function(_0x24a318,_0x55ba75){_0x24a318=_0x24a318-0x0;var _0x3aa629=_0x768a[_0x24a318];return _0x3aa629;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa768('0x0'));var zipdir=require(_0xa768('0x1'));var jsonpatch=require(_0xa768('0x2'));var rp=require(_0xa768('0x3'));var moment=require(_0xa768('0x4'));var BPromise=require(_0xa768('0x5'));var Mustache=require(_0xa768('0x6'));var util=require(_0xa768('0x7'));var path=require(_0xa768('0x8'));var sox=require(_0xa768('0x9'));var csv=require(_0xa768('0xa'));var ejs=require(_0xa768('0xb'));var fs=require('fs');var fs_extra=require(_0xa768('0xc'));var _=require(_0xa768('0xd'));var squel=require('squel');var crypto=require(_0xa768('0xe'));var jsforce=require(_0xa768('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xa768('0xa'));var querystring=require(_0xa768('0x10'));var Papa=require(_0xa768('0x11'));var Redis=require(_0xa768('0x12'));var authService=require(_0xa768('0x13'));var qs=require(_0xa768('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xa768('0x15'))(_0xa768('0x16'));var utils=require(_0xa768('0x17'));var config=require(_0xa768('0x18'));var licenseUtil=require(_0xa768('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4a5ff8,_0x5d3d8a){_0x5d3d8a=_0x5d3d8a||0xcc;return function(_0x272be1){if(_0x272be1){return _0x4a5ff8[_0xa768('0x1a')](_0x5d3d8a);}return _0x4a5ff8[_0xa768('0x1b')](_0x5d3d8a)[_0xa768('0x1c')]();};}function respondWithResult(_0x40ed60,_0x52ed37){_0x52ed37=_0x52ed37||0xc8;return function(_0x203610){if(_0x203610){return _0x40ed60[_0xa768('0x1b')](_0x52ed37)[_0xa768('0x1d')](_0x203610);}};}function respondWithFilteredResult(_0x53f9e5,_0x4128d9){return function(_0x59c375){if(_0x59c375){var _0x2e5a5f=typeof _0x4128d9[_0xa768('0x1e')]===_0xa768('0x1f')&&typeof _0x4128d9[_0xa768('0x20')]==='undefined';var _0x58213a=_0x59c375[_0xa768('0x21')];var _0x503c1b=_0x2e5a5f?0x0:_0x4128d9[_0xa768('0x1e')];var _0x66c581=_0x2e5a5f?_0x59c375[_0xa768('0x21')]:_0x4128d9[_0xa768('0x1e')]+_0x4128d9[_0xa768('0x20')];var _0xe6b1a3;if(_0x66c581>=_0x58213a){_0x66c581=_0x58213a;_0xe6b1a3=0xc8;}else{_0xe6b1a3=0xce;}_0x53f9e5[_0xa768('0x1b')](_0xe6b1a3);return _0x53f9e5[_0xa768('0x22')](_0xa768('0x23'),_0x503c1b+'-'+_0x66c581+'/'+_0x58213a)[_0xa768('0x1d')](_0x59c375);}return null;};}function patchUpdates(_0x2d50aa){return function(_0x4b90b1){try{jsonpatch[_0xa768('0x24')](_0x4b90b1,_0x2d50aa,!![]);}catch(_0x4b071c){return BPromise['reject'](_0x4b071c);}return _0x4b90b1['save']();};}function saveUpdates(_0x58e6ab,_0x3b829c){return function(_0x5206b6){if(_0x5206b6){return _0x5206b6[_0xa768('0x25')](_0x58e6ab)['then'](function(_0x298862){return _0x298862;});}return null;};}function removeEntity(_0xb55f49,_0x43b44f){return function(_0x3500ab){if(_0x3500ab){return _0x3500ab[_0xa768('0x26')]()['then'](function(){var _0x5e6174=_0x3500ab[_0xa768('0x27')]({'plain':!![]});var _0x1d080d=_0xa768('0x28');return db[_0xa768('0x29')][_0xa768('0x26')]({'where':{'type':_0x1d080d,'resourceId':_0x5e6174['id']}})['then'](function(){return _0x3500ab;});})[_0xa768('0x2a')](function(){_0xb55f49[_0xa768('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x27d28e,_0x5be5ac){return function(_0xaa2652){if(!_0xaa2652){_0x27d28e['sendStatus'](0x194);}return _0xaa2652;};}function handleError(_0x5e197b,_0x2e95e6){_0x2e95e6=_0x2e95e6||0x1f4;return function(_0x4279ef){logger[_0xa768('0x2b')](_0x4279ef[_0xa768('0x2c')]);if(_0x4279ef[_0xa768('0x2d')]){delete _0x4279ef[_0xa768('0x2d')];}_0x5e197b[_0xa768('0x1b')](_0x2e95e6)[_0xa768('0x2e')](_0x4279ef);};}exports[_0xa768('0x2f')]=function(_0x54d467,_0x13c9ef){var _0x502148={},_0x525a88={},_0x5e6508={'count':0x0,'rows':[]};return db[_0xa768('0x30')][_0xa768('0x31')]()[_0xa768('0x2a')](function(_0x319885){_0x525a88[_0xa768('0x32')]=_[_0xa768('0x33')](_0x319885);_0x525a88[_0xa768('0x34')]=_['keys'](_0x54d467[_0xa768('0x34')]);_0x525a88[_0xa768('0x35')]=_[_0xa768('0x36')](_0x525a88[_0xa768('0x32')],_0x525a88[_0xa768('0x34')]);_0x502148['attributes']=_[_0xa768('0x36')](_0x525a88[_0xa768('0x32')],qs[_0xa768('0x37')](_0x54d467[_0xa768('0x34')]['fields']));_0x502148['attributes']=_0x502148[_0xa768('0x38')]['length']?_0x502148['attributes']:_0x525a88['model'];if(!_0x54d467[_0xa768('0x34')][_0xa768('0x39')]('nolimit')){_0x502148[_0xa768('0x20')]=qs[_0xa768('0x20')](_0x54d467[_0xa768('0x34')][_0xa768('0x20')]);_0x502148[_0xa768('0x1e')]=qs[_0xa768('0x1e')](_0x54d467[_0xa768('0x34')][_0xa768('0x1e')]);}_0x502148[_0xa768('0x3a')]=qs['sort'](_0x54d467['query'][_0xa768('0x3b')]);_0x502148[_0xa768('0x3c')]=qs[_0xa768('0x35')](_[_0xa768('0x3d')](_0x54d467['query'],_0x525a88['filters']),_0x319885);if(_0x54d467[_0xa768('0x34')][_0xa768('0x3e')]){_0x502148[_0xa768('0x3c')]=_[_0xa768('0x3f')](_0x502148['where'],{'$or':_[_0xa768('0x40')](_0x502148[_0xa768('0x38')],function(_0x33839d){var _0x206a15={};_0x206a15[_0x33839d]={'$like':'%'+_0x54d467['query'][_0xa768('0x3e')]+'%'};return _0x206a15;})});}_0x502148=_[_0xa768('0x3f')]({},_0x502148,_0x54d467[_0xa768('0x41')]);var _0x3ab139={'where':_0x502148[_0xa768('0x3c')]};return db[_0xa768('0x30')]['count'](_0x3ab139)['then'](function(_0x52b1ee){_0x5e6508['count']=_0x52b1ee;if(_0x54d467[_0xa768('0x34')][_0xa768('0x42')]){_0x502148[_0xa768('0x43')]=[{'all':!![]}];}return db[_0xa768('0x30')]['findAll'](_0x502148);})['then'](function(_0x7bd744){_0x5e6508[_0xa768('0x44')]=_0x7bd744;return _0x5e6508;})[_0xa768('0x2a')](respondWithFilteredResult(_0x13c9ef,_0x502148))[_0xa768('0x45')](handleError(_0x13c9ef,null));})['catch'](handleError(_0x13c9ef,null));};exports[_0xa768('0x46')]=function(_0x8e945,_0x56f7db){var _0x36bfe9={'raw':![],'where':{'id':_0x8e945['params']['id']}},_0x5e89bf={};_0x5e89bf[_0xa768('0x32')]=_[_0xa768('0x33')](db[_0xa768('0x30')][_0xa768('0x47')]);_0x5e89bf[_0xa768('0x34')]=_[_0xa768('0x33')](_0x8e945[_0xa768('0x34')]);_0x5e89bf[_0xa768('0x35')]=_[_0xa768('0x36')](_0x5e89bf[_0xa768('0x32')],_0x5e89bf['query']);_0x36bfe9[_0xa768('0x38')]=_['intersection'](_0x5e89bf[_0xa768('0x32')],qs['fields'](_0x8e945[_0xa768('0x34')]['fields']));_0x36bfe9[_0xa768('0x38')]=_0x36bfe9[_0xa768('0x38')]['length']?_0x36bfe9[_0xa768('0x38')]:_0x5e89bf[_0xa768('0x32')];if(_0x8e945[_0xa768('0x34')][_0xa768('0x42')]){_0x36bfe9['include']=[{'all':!![]}];}_0x36bfe9=_[_0xa768('0x3f')]({},_0x36bfe9,_0x8e945[_0xa768('0x41')]);return db[_0xa768('0x30')]['find'](_0x36bfe9)[_0xa768('0x2a')](handleEntityNotFound(_0x56f7db,null))[_0xa768('0x2a')](respondWithResult(_0x56f7db,null))[_0xa768('0x45')](handleError(_0x56f7db,null));};exports['create']=function(_0x3e3d17,_0x8f6901){return db[_0xa768('0x30')][_0xa768('0x48')](_0x3e3d17[_0xa768('0x49')],{})[_0xa768('0x2a')](function(_0x241c27){var _0x49eab2=_0x3e3d17[_0xa768('0x4a')]['get']({'plain':!![]});if(!_0x49eab2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x49eab2['role']===_0xa768('0x4a')){var _0x1d9c4c=_0x241c27[_0xa768('0x27')]({'plain':!![]});var _0x658155=_0xa768('0x28');return db[_0xa768('0x4b')]['find']({'where':{'name':_0x658155,'userProfileId':_0x49eab2[_0xa768('0x4c')]},'raw':!![]})[_0xa768('0x2a')](function(_0x44fd31){if(_0x44fd31&&_0x44fd31[_0xa768('0x4d')]===0x0){return db['UserProfileResource'][_0xa768('0x48')]({'name':_0x1d9c4c[_0xa768('0x2d')],'resourceId':_0x1d9c4c['id'],'type':_0x44fd31[_0xa768('0x2d')],'sectionId':_0x44fd31['id']},{})['then'](function(){return _0x241c27;});}else{return _0x241c27;}})[_0xa768('0x45')](function(_0x2c26c2){logger['error'](_0xa768('0x4e'),_0x2c26c2);throw _0x2c26c2;});}return _0x241c27;})[_0xa768('0x2a')](respondWithResult(_0x8f6901,0xc9))[_0xa768('0x45')](handleError(_0x8f6901,null));};exports[_0xa768('0x25')]=function(_0x198c66,_0x23840c){if(_0x198c66[_0xa768('0x49')]['id']){delete _0x198c66[_0xa768('0x49')]['id'];}return db[_0xa768('0x30')][_0xa768('0x4f')]({'where':{'id':_0x198c66[_0xa768('0x50')]['id']}})[_0xa768('0x2a')](handleEntityNotFound(_0x23840c,null))['then'](saveUpdates(_0x198c66[_0xa768('0x49')],null))[_0xa768('0x2a')](respondWithResult(_0x23840c,null))[_0xa768('0x45')](handleError(_0x23840c,null));};exports[_0xa768('0x26')]=function(_0x145216,_0x2e32d9){return db[_0xa768('0x30')][_0xa768('0x4f')]({'where':{'id':_0x145216['params']['id']}})['then'](handleEntityNotFound(_0x2e32d9,null))[_0xa768('0x2a')](removeEntity(_0x2e32d9,null))[_0xa768('0x45')](handleError(_0x2e32d9,null));};exports['describe']=function(_0x555536,_0x5d8562){return db['CmCompany'][_0xa768('0x31')]()[_0xa768('0x2a')](respondWithResult(_0x5d8562,null))[_0xa768('0x45')](handleError(_0x5d8562,null));};exports['addContacts']=function(_0x1cc6ba,_0x3e6d88,_0x4b57ba){return db[_0xa768('0x51')][_0xa768('0x4f')]({'where':{'id':_0x1cc6ba[_0xa768('0x50')]['id']}})[_0xa768('0x2a')](handleEntityNotFound(_0x3e6d88,null))[_0xa768('0x2a')](function(_0x3c7bd9){if(_0x3c7bd9){return _0x3c7bd9[_0xa768('0x52')](_0x1cc6ba['body'][_0xa768('0x53')],_[_0xa768('0x54')](_0x1cc6ba[_0xa768('0x49')],[_0xa768('0x53'),'id'])||{});}})[_0xa768('0x2a')](respondWithResult(_0x3e6d88,null))['catch'](handleError(_0x3e6d88,null));};exports[_0xa768('0x55')]=function(_0x28ad9a,_0x10983c,_0x213023){var _0x3bd473={};var _0x258be2={};var _0x57e505;var _0x15e790;return db[_0xa768('0x30')][_0xa768('0x56')]({'where':{'id':_0x28ad9a[_0xa768('0x50')]['id']}})[_0xa768('0x2a')](handleEntityNotFound(_0x10983c,null))[_0xa768('0x2a')](function(_0x34e0a3){if(_0x34e0a3){_0x57e505=_0x34e0a3;_0x258be2['model']=_[_0xa768('0x33')](db[_0xa768('0x51')][_0xa768('0x47')]);_0x258be2[_0xa768('0x34')]=_[_0xa768('0x33')](_0x28ad9a[_0xa768('0x34')]);_0x258be2['filters']=_[_0xa768('0x36')](_0x258be2[_0xa768('0x32')],_0x258be2[_0xa768('0x34')]);_0x3bd473[_0xa768('0x38')]=_[_0xa768('0x36')](_0x258be2['model'],qs[_0xa768('0x37')](_0x28ad9a[_0xa768('0x34')][_0xa768('0x37')]));_0x3bd473[_0xa768('0x38')]=_0x3bd473[_0xa768('0x38')][_0xa768('0x57')]?_0x3bd473[_0xa768('0x38')]:_0x258be2['model'];_0x3bd473[_0xa768('0x3a')]=qs[_0xa768('0x3b')](_0x28ad9a[_0xa768('0x34')][_0xa768('0x3b')]);_0x3bd473[_0xa768('0x3c')]=qs[_0xa768('0x35')](_[_0xa768('0x3d')](_0x28ad9a[_0xa768('0x34')],_0x258be2[_0xa768('0x35')]));if(_0x28ad9a['query']['filter']){_0x3bd473['where']=_[_0xa768('0x3f')](_0x3bd473[_0xa768('0x3c')],{'$or':_['map'](_0x3bd473[_0xa768('0x38')],function(_0x491650){var _0xd3167f={};_0xd3167f[_0x491650]={'$like':'%'+_0x28ad9a['query'][_0xa768('0x3e')]+'%'};return _0xd3167f;})});}_0x3bd473=_[_0xa768('0x3f')]({},_0x3bd473,_0x28ad9a[_0xa768('0x41')]);return _0x57e505[_0xa768('0x55')](_0x3bd473);}})[_0xa768('0x2a')](function(_0x4d1797){if(_0x4d1797){_0x15e790=_0x4d1797['length'];if(!_0x28ad9a[_0xa768('0x34')][_0xa768('0x39')](_0xa768('0x58'))){_0x3bd473[_0xa768('0x20')]=qs[_0xa768('0x20')](_0x28ad9a[_0xa768('0x34')]['limit']);_0x3bd473[_0xa768('0x1e')]=qs['offset'](_0x28ad9a[_0xa768('0x34')][_0xa768('0x1e')]);}return _0x57e505['getContacts'](_0x3bd473);}})[_0xa768('0x2a')](function(_0x17ee26){if(_0x17ee26){return _0x17ee26?{'count':_0x15e790,'rows':_0x17ee26}:null;}})[_0xa768('0x2a')](respondWithResult(_0x10983c,null))[_0xa768('0x45')](handleError(_0x10983c,null));};