Built motion from commit da617fac.|2.6.6
[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 _0x9280=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','limit','count','set','save','update','then','destroy','get','Companies','UserProfileResource','sendStatus','stack','send','index','CmCompany','describe','model','keys','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filters','merge','map','filter','options','includeAll','include','catch','show','params','rawAttributes','length','create','body','user','role','UserProfileSection','find','userProfileId','autoAssociation','name','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','CmContact','addContacts','ids','getContacts','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs'];(function(_0x5d7754,_0x1e16d4){var _0x2d60c5=function(_0xb09554){while(--_0xb09554){_0x5d7754['push'](_0x5d7754['shift']());}};_0x2d60c5(++_0x1e16d4);}(_0x9280,0x196));var _0x0928=function(_0x2c4c97,_0x590f10){_0x2c4c97=_0x2c4c97-0x0;var _0x472337=_0x9280[_0x2c4c97];return _0x472337;};'use strict';var emlformat=require(_0x0928('0x0'));var rimraf=require(_0x0928('0x1'));var zipdir=require(_0x0928('0x2'));var jsonpatch=require(_0x0928('0x3'));var rp=require('request-promise');var moment=require(_0x0928('0x4'));var BPromise=require(_0x0928('0x5'));var Mustache=require(_0x0928('0x6'));var util=require('util');var path=require('path');var sox=require(_0x0928('0x7'));var csv=require(_0x0928('0x8'));var ejs=require(_0x0928('0x9'));var fs=require('fs');var fs_extra=require(_0x0928('0xa'));var _=require('lodash');var squel=require(_0x0928('0xb'));var crypto=require(_0x0928('0xc'));var jsforce=require(_0x0928('0xd'));var deskjs=require(_0x0928('0xe'));var toCsv=require(_0x0928('0x8'));var querystring=require(_0x0928('0xf'));var Papa=require(_0x0928('0x10'));var Redis=require('ioredis');var authService=require(_0x0928('0x11'));var qs=require(_0x0928('0x12'));var as=require(_0x0928('0x13'));var hardwareService=require(_0x0928('0x14'));var logger=require(_0x0928('0x15'))(_0x0928('0x16'));var utils=require(_0x0928('0x17'));var config=require(_0x0928('0x18'));var licenseUtil=require(_0x0928('0x19'));var db=require(_0x0928('0x1a'))['db'];function respondWithStatusCode(_0x16a62b,_0x54c2d4){_0x54c2d4=_0x54c2d4||0xcc;return function(_0xdbb2f7){if(_0xdbb2f7){return _0x16a62b['sendStatus'](_0x54c2d4);}return _0x16a62b['status'](_0x54c2d4)['end']();};}function respondWithResult(_0x33aa7a,_0x4f92e6){_0x4f92e6=_0x4f92e6||0xc8;return function(_0x3a5fe5){if(_0x3a5fe5){return _0x33aa7a[_0x0928('0x1b')](_0x4f92e6)[_0x0928('0x1c')](_0x3a5fe5);}};}function respondWithFilteredResult(_0x2da57d,_0x23c5da){return function(_0x5dfa1c){if(_0x5dfa1c){var _0x596705=typeof _0x23c5da[_0x0928('0x1d')]==='undefined'&&typeof _0x23c5da[_0x0928('0x1e')]==='undefined';var _0x49392b=_0x5dfa1c[_0x0928('0x1f')];var _0xac6831=_0x596705?0x0:_0x23c5da['offset'];var _0x2dadf1=_0x596705?_0x5dfa1c[_0x0928('0x1f')]:_0x23c5da[_0x0928('0x1d')]+_0x23c5da[_0x0928('0x1e')];var _0xd07617;if(_0x2dadf1>=_0x49392b){_0x2dadf1=_0x49392b;_0xd07617=0xc8;}else{_0xd07617=0xce;}_0x2da57d[_0x0928('0x1b')](_0xd07617);return _0x2da57d[_0x0928('0x20')]('Content-Range',_0xac6831+'-'+_0x2dadf1+'/'+_0x49392b)[_0x0928('0x1c')](_0x5dfa1c);}return null;};}function patchUpdates(_0xf16099){return function(_0x392cbc){try{jsonpatch['apply'](_0x392cbc,_0xf16099,!![]);}catch(_0x8e386c){return BPromise['reject'](_0x8e386c);}return _0x392cbc[_0x0928('0x21')]();};}function saveUpdates(_0x9886d,_0x284fa2){return function(_0x5ed97c){if(_0x5ed97c){return _0x5ed97c[_0x0928('0x22')](_0x9886d)[_0x0928('0x23')](function(_0x59b689){return _0x59b689;});}return null;};}function removeEntity(_0x5e67dc,_0x1187c1){return function(_0x33322f){if(_0x33322f){return _0x33322f[_0x0928('0x24')]()[_0x0928('0x23')](function(){var _0x316f91=_0x33322f[_0x0928('0x25')]({'plain':!![]});var _0x5d8121=_0x0928('0x26');return db[_0x0928('0x27')][_0x0928('0x24')]({'where':{'type':_0x5d8121,'resourceId':_0x316f91['id']}})[_0x0928('0x23')](function(){return _0x33322f;});})[_0x0928('0x23')](function(){_0x5e67dc['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4ecae9,_0x2cd781){return function(_0x217196){if(!_0x217196){_0x4ecae9[_0x0928('0x28')](0x194);}return _0x217196;};}function handleError(_0x5f48fa,_0x394775){_0x394775=_0x394775||0x1f4;return function(_0x496343){logger['error'](_0x496343[_0x0928('0x29')]);if(_0x496343['name']){delete _0x496343['name'];}_0x5f48fa['status'](_0x394775)[_0x0928('0x2a')](_0x496343);};}exports[_0x0928('0x2b')]=function(_0x2ae2d4,_0x1acee2){var _0x1c8984={},_0x48a9d5={},_0x3c5abd={'count':0x0,'rows':[]};return db[_0x0928('0x2c')][_0x0928('0x2d')]()['then'](function(_0x1fc084){_0x48a9d5[_0x0928('0x2e')]=_[_0x0928('0x2f')](_0x1fc084);_0x48a9d5[_0x0928('0x30')]=_[_0x0928('0x2f')](_0x2ae2d4[_0x0928('0x30')]);_0x48a9d5['filters']=_[_0x0928('0x31')](_0x48a9d5['model'],_0x48a9d5[_0x0928('0x30')]);_0x1c8984[_0x0928('0x32')]=_[_0x0928('0x31')](_0x48a9d5[_0x0928('0x2e')],qs[_0x0928('0x33')](_0x2ae2d4[_0x0928('0x30')]['fields']));_0x1c8984[_0x0928('0x32')]=_0x1c8984['attributes']['length']?_0x1c8984[_0x0928('0x32')]:_0x48a9d5[_0x0928('0x2e')];if(!_0x2ae2d4[_0x0928('0x30')][_0x0928('0x34')](_0x0928('0x35'))){_0x1c8984[_0x0928('0x1e')]=qs[_0x0928('0x1e')](_0x2ae2d4[_0x0928('0x30')][_0x0928('0x1e')]);_0x1c8984[_0x0928('0x1d')]=qs[_0x0928('0x1d')](_0x2ae2d4['query'][_0x0928('0x1d')]);}_0x1c8984[_0x0928('0x36')]=qs[_0x0928('0x37')](_0x2ae2d4['query'][_0x0928('0x37')]);_0x1c8984[_0x0928('0x38')]=qs['filters'](_[_0x0928('0x39')](_0x2ae2d4[_0x0928('0x30')],_0x48a9d5[_0x0928('0x3a')]),_0x1fc084);if(_0x2ae2d4[_0x0928('0x30')]['filter']){_0x1c8984[_0x0928('0x38')]=_[_0x0928('0x3b')](_0x1c8984['where'],{'$or':_[_0x0928('0x3c')](_0x1c8984[_0x0928('0x32')],function(_0x30c0d7){var _0x2c5044={};_0x2c5044[_0x30c0d7]={'$like':'%'+_0x2ae2d4[_0x0928('0x30')][_0x0928('0x3d')]+'%'};return _0x2c5044;})});}_0x1c8984=_[_0x0928('0x3b')]({},_0x1c8984,_0x2ae2d4[_0x0928('0x3e')]);var _0x1330dd={'where':_0x1c8984[_0x0928('0x38')]};return db[_0x0928('0x2c')]['count'](_0x1330dd)[_0x0928('0x23')](function(_0x2446ee){_0x3c5abd[_0x0928('0x1f')]=_0x2446ee;if(_0x2ae2d4[_0x0928('0x30')][_0x0928('0x3f')]){_0x1c8984[_0x0928('0x40')]=[{'all':!![]}];}return db[_0x0928('0x2c')]['findAll'](_0x1c8984);})[_0x0928('0x23')](function(_0x2d640c){_0x3c5abd['rows']=_0x2d640c;return _0x3c5abd;})[_0x0928('0x23')](respondWithFilteredResult(_0x1acee2,_0x1c8984))['catch'](handleError(_0x1acee2,null));})[_0x0928('0x41')](handleError(_0x1acee2,null));};exports[_0x0928('0x42')]=function(_0x39e5ec,_0xdcba36){var _0x40cf25={'raw':![],'where':{'id':_0x39e5ec[_0x0928('0x43')]['id']}},_0x32f20f={};_0x32f20f[_0x0928('0x2e')]=_[_0x0928('0x2f')](db['CmCompany'][_0x0928('0x44')]);_0x32f20f['query']=_[_0x0928('0x2f')](_0x39e5ec['query']);_0x32f20f[_0x0928('0x3a')]=_[_0x0928('0x31')](_0x32f20f[_0x0928('0x2e')],_0x32f20f[_0x0928('0x30')]);_0x40cf25[_0x0928('0x32')]=_[_0x0928('0x31')](_0x32f20f[_0x0928('0x2e')],qs[_0x0928('0x33')](_0x39e5ec[_0x0928('0x30')]['fields']));_0x40cf25[_0x0928('0x32')]=_0x40cf25[_0x0928('0x32')][_0x0928('0x45')]?_0x40cf25[_0x0928('0x32')]:_0x32f20f[_0x0928('0x2e')];if(_0x39e5ec['query'][_0x0928('0x3f')]){_0x40cf25[_0x0928('0x40')]=[{'all':!![]}];}_0x40cf25=_[_0x0928('0x3b')]({},_0x40cf25,_0x39e5ec[_0x0928('0x3e')]);return db[_0x0928('0x2c')]['find'](_0x40cf25)['then'](handleEntityNotFound(_0xdcba36,null))[_0x0928('0x23')](respondWithResult(_0xdcba36,null))[_0x0928('0x41')](handleError(_0xdcba36,null));};exports[_0x0928('0x46')]=function(_0x5bfdcb,_0x232122){return db[_0x0928('0x2c')][_0x0928('0x46')](_0x5bfdcb[_0x0928('0x47')],{})[_0x0928('0x23')](function(_0x3a9d65){var _0x3c5e5b=_0x5bfdcb[_0x0928('0x48')][_0x0928('0x25')]({'plain':!![]});if(!_0x3c5e5b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3c5e5b[_0x0928('0x49')]==='user'){var _0x35dd08=_0x3a9d65['get']({'plain':!![]});var _0x59b9c7=_0x0928('0x26');return db[_0x0928('0x4a')][_0x0928('0x4b')]({'where':{'name':_0x59b9c7,'userProfileId':_0x3c5e5b[_0x0928('0x4c')]},'raw':!![]})[_0x0928('0x23')](function(_0x15156b){if(_0x15156b&&_0x15156b[_0x0928('0x4d')]===0x0){return db[_0x0928('0x27')]['create']({'name':_0x35dd08[_0x0928('0x4e')],'resourceId':_0x35dd08['id'],'type':_0x15156b[_0x0928('0x4e')],'sectionId':_0x15156b['id']},{})['then'](function(){return _0x3a9d65;});}else{return _0x3a9d65;}})['catch'](function(_0xd93a0c){logger[_0x0928('0x4f')](_0x0928('0x50'),_0xd93a0c);throw _0xd93a0c;});}return _0x3a9d65;})[_0x0928('0x23')](respondWithResult(_0x232122,0xc9))[_0x0928('0x41')](handleError(_0x232122,null));};exports[_0x0928('0x22')]=function(_0x4ea67f,_0x62b38f){if(_0x4ea67f[_0x0928('0x47')]['id']){delete _0x4ea67f[_0x0928('0x47')]['id'];}return db[_0x0928('0x2c')]['find']({'where':{'id':_0x4ea67f['params']['id']}})[_0x0928('0x23')](handleEntityNotFound(_0x62b38f,null))['then'](saveUpdates(_0x4ea67f['body'],null))[_0x0928('0x23')](respondWithResult(_0x62b38f,null))[_0x0928('0x41')](handleError(_0x62b38f,null));};exports[_0x0928('0x24')]=function(_0x44ee54,_0x5947ea){return db[_0x0928('0x2c')]['find']({'where':{'id':_0x44ee54[_0x0928('0x43')]['id']}})[_0x0928('0x23')](handleEntityNotFound(_0x5947ea,null))['then'](removeEntity(_0x5947ea,null))[_0x0928('0x41')](handleError(_0x5947ea,null));};exports[_0x0928('0x2d')]=function(_0x4a8b14,_0x3e9f81){return db[_0x0928('0x2c')][_0x0928('0x2d')]()[_0x0928('0x23')](respondWithResult(_0x3e9f81,null))['catch'](handleError(_0x3e9f81,null));};exports['addContacts']=function(_0x4fc0c9,_0x4f475c,_0x3604ab){return db[_0x0928('0x51')][_0x0928('0x4b')]({'where':{'id':_0x4fc0c9['params']['id']}})[_0x0928('0x23')](handleEntityNotFound(_0x4f475c,null))['then'](function(_0x5ae46f){if(_0x5ae46f){return _0x5ae46f[_0x0928('0x52')](_0x4fc0c9[_0x0928('0x47')][_0x0928('0x53')],_['omit'](_0x4fc0c9['body'],['ids','id'])||{});}})[_0x0928('0x23')](respondWithResult(_0x4f475c,null))[_0x0928('0x41')](handleError(_0x4f475c,null));};exports[_0x0928('0x54')]=function(_0x46f6c8,_0x541c15,_0x5ebc2f){var _0x501a83={};var _0x4a4068={};var _0x176869;var _0x186b77;return db[_0x0928('0x2c')]['findOne']({'where':{'id':_0x46f6c8['params']['id']}})['then'](handleEntityNotFound(_0x541c15,null))['then'](function(_0x112196){if(_0x112196){_0x176869=_0x112196;_0x4a4068[_0x0928('0x2e')]=_[_0x0928('0x2f')](db['CmContact'][_0x0928('0x44')]);_0x4a4068['query']=_['keys'](_0x46f6c8[_0x0928('0x30')]);_0x4a4068[_0x0928('0x3a')]=_[_0x0928('0x31')](_0x4a4068[_0x0928('0x2e')],_0x4a4068[_0x0928('0x30')]);_0x501a83[_0x0928('0x32')]=_['intersection'](_0x4a4068[_0x0928('0x2e')],qs[_0x0928('0x33')](_0x46f6c8[_0x0928('0x30')]['fields']));_0x501a83[_0x0928('0x32')]=_0x501a83[_0x0928('0x32')][_0x0928('0x45')]?_0x501a83[_0x0928('0x32')]:_0x4a4068[_0x0928('0x2e')];_0x501a83[_0x0928('0x36')]=qs[_0x0928('0x37')](_0x46f6c8[_0x0928('0x30')][_0x0928('0x37')]);_0x501a83[_0x0928('0x38')]=qs['filters'](_['pick'](_0x46f6c8[_0x0928('0x30')],_0x4a4068['filters']));if(_0x46f6c8[_0x0928('0x30')]['filter']){_0x501a83[_0x0928('0x38')]=_['merge'](_0x501a83[_0x0928('0x38')],{'$or':_['map'](_0x501a83[_0x0928('0x32')],function(_0x2b2ce6){var _0x2bdbeb={};_0x2bdbeb[_0x2b2ce6]={'$like':'%'+_0x46f6c8[_0x0928('0x30')][_0x0928('0x3d')]+'%'};return _0x2bdbeb;})});}_0x501a83=_[_0x0928('0x3b')]({},_0x501a83,_0x46f6c8[_0x0928('0x3e')]);return _0x176869[_0x0928('0x54')](_0x501a83);}})[_0x0928('0x23')](function(_0x310661){if(_0x310661){_0x186b77=_0x310661[_0x0928('0x45')];if(!_0x46f6c8[_0x0928('0x30')]['hasOwnProperty'](_0x0928('0x35'))){_0x501a83[_0x0928('0x1e')]=qs[_0x0928('0x1e')](_0x46f6c8[_0x0928('0x30')][_0x0928('0x1e')]);_0x501a83['offset']=qs[_0x0928('0x1d')](_0x46f6c8['query'][_0x0928('0x1d')]);}return _0x176869[_0x0928('0x54')](_0x501a83);}})[_0x0928('0x23')](function(_0x33dd2c){if(_0x33dd2c){return _0x33dd2c?{'count':_0x186b77,'rows':_0x33dd2c}:null;}})[_0x0928('0x23')](respondWithResult(_0x541c15,null))[_0x0928('0x41')](handleError(_0x541c15,null));};