Built motion from commit 9d0783e6.|2.6.13
[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 _0xa405=['length','hasOwnProperty','nolimit','order','sort','where','filter','merge','includeAll','include','findAll','rows','catch','show','params','rawAttributes','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','update','addContacts','ids','getContacts','findOne','CmContact','pick','map','options','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','end','json','undefined','limit','count','offset','status','set','apply','reject','then','get','Companies','UserProfileResource','destroy','sendStatus','error','stack','name','send','index','CmCompany','describe','query','keys','filters','intersection','model','attributes','fields'];(function(_0x2b24d0,_0x49b3d7){var _0x1a2482=function(_0x4c22ad){while(--_0x4c22ad){_0x2b24d0['push'](_0x2b24d0['shift']());}};_0x1a2482(++_0x49b3d7);}(_0xa405,0x17a));var _0x5a40=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0xa405[_0x167cc1];return _0x10bc4b;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x5a40('0x0'));var jsonpatch=require(_0x5a40('0x1'));var rp=require(_0x5a40('0x2'));var moment=require(_0x5a40('0x3'));var BPromise=require(_0x5a40('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x5a40('0x5'));var sox=require('sox');var csv=require(_0x5a40('0x6'));var ejs=require(_0x5a40('0x7'));var fs=require('fs');var fs_extra=require(_0x5a40('0x8'));var _=require(_0x5a40('0x9'));var squel=require('squel');var crypto=require(_0x5a40('0xa'));var jsforce=require(_0x5a40('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x5a40('0x6'));var querystring=require(_0x5a40('0xc'));var Papa=require(_0x5a40('0xd'));var Redis=require('ioredis');var authService=require(_0x5a40('0xe'));var qs=require(_0x5a40('0xf'));var as=require(_0x5a40('0x10'));var hardwareService=require(_0x5a40('0x11'));var logger=require('../../config/logger')(_0x5a40('0x12'));var utils=require(_0x5a40('0x13'));var config=require(_0x5a40('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x5a40('0x15'))['db'];function respondWithStatusCode(_0x45e1d4,_0x210d6f){_0x210d6f=_0x210d6f||0xcc;return function(_0x3d3667){if(_0x3d3667){return _0x45e1d4['sendStatus'](_0x210d6f);}return _0x45e1d4['status'](_0x210d6f)[_0x5a40('0x16')]();};}function respondWithResult(_0x30ed53,_0x8e46ed){_0x8e46ed=_0x8e46ed||0xc8;return function(_0x1fb40d){if(_0x1fb40d){return _0x30ed53['status'](_0x8e46ed)[_0x5a40('0x17')](_0x1fb40d);}};}function respondWithFilteredResult(_0x34b51d,_0x26af94){return function(_0x427057){if(_0x427057){var _0xb5fa95=typeof _0x26af94['offset']===_0x5a40('0x18')&&typeof _0x26af94[_0x5a40('0x19')]===_0x5a40('0x18');var _0x2c4162=_0x427057[_0x5a40('0x1a')];var _0x55cf33=_0xb5fa95?0x0:_0x26af94[_0x5a40('0x1b')];var _0x5c0dc1=_0xb5fa95?_0x427057['count']:_0x26af94[_0x5a40('0x1b')]+_0x26af94[_0x5a40('0x19')];var _0x53de0b;if(_0x5c0dc1>=_0x2c4162){_0x5c0dc1=_0x2c4162;_0x53de0b=0xc8;}else{_0x53de0b=0xce;}_0x34b51d[_0x5a40('0x1c')](_0x53de0b);return _0x34b51d[_0x5a40('0x1d')]('Content-Range',_0x55cf33+'-'+_0x5c0dc1+'/'+_0x2c4162)['json'](_0x427057);}return null;};}function patchUpdates(_0x14fa97){return function(_0xc3253d){try{jsonpatch[_0x5a40('0x1e')](_0xc3253d,_0x14fa97,!![]);}catch(_0x548166){return BPromise[_0x5a40('0x1f')](_0x548166);}return _0xc3253d['save']();};}function saveUpdates(_0x42bc67,_0x22a35f){return function(_0x185005){if(_0x185005){return _0x185005['update'](_0x42bc67)[_0x5a40('0x20')](function(_0x131947){return _0x131947;});}return null;};}function removeEntity(_0x3334d1,_0x3121cd){return function(_0x57d253){if(_0x57d253){return _0x57d253['destroy']()[_0x5a40('0x20')](function(){var _0x1d1921=_0x57d253[_0x5a40('0x21')]({'plain':!![]});var _0x9eab1c=_0x5a40('0x22');return db[_0x5a40('0x23')][_0x5a40('0x24')]({'where':{'type':_0x9eab1c,'resourceId':_0x1d1921['id']}})[_0x5a40('0x20')](function(){return _0x57d253;});})[_0x5a40('0x20')](function(){_0x3334d1[_0x5a40('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x18cd35,_0x1e80bc){return function(_0x3d9bb9){if(!_0x3d9bb9){_0x18cd35[_0x5a40('0x25')](0x194);}return _0x3d9bb9;};}function handleError(_0x1902e0,_0x2f40c7){_0x2f40c7=_0x2f40c7||0x1f4;return function(_0x2d1f29){logger[_0x5a40('0x26')](_0x2d1f29[_0x5a40('0x27')]);if(_0x2d1f29[_0x5a40('0x28')]){delete _0x2d1f29['name'];}_0x1902e0[_0x5a40('0x1c')](_0x2f40c7)[_0x5a40('0x29')](_0x2d1f29);};}exports[_0x5a40('0x2a')]=function(_0x17046b,_0x162a7c){var _0x5cd22a={},_0x19b0a2={},_0x1ae9ee={'count':0x0,'rows':[]};return db[_0x5a40('0x2b')][_0x5a40('0x2c')]()[_0x5a40('0x20')](function(_0x4f44f2){_0x19b0a2['model']=_['keys'](_0x4f44f2);_0x19b0a2[_0x5a40('0x2d')]=_[_0x5a40('0x2e')](_0x17046b[_0x5a40('0x2d')]);_0x19b0a2[_0x5a40('0x2f')]=_[_0x5a40('0x30')](_0x19b0a2[_0x5a40('0x31')],_0x19b0a2['query']);_0x5cd22a[_0x5a40('0x32')]=_[_0x5a40('0x30')](_0x19b0a2['model'],qs['fields'](_0x17046b[_0x5a40('0x2d')][_0x5a40('0x33')]));_0x5cd22a['attributes']=_0x5cd22a[_0x5a40('0x32')][_0x5a40('0x34')]?_0x5cd22a['attributes']:_0x19b0a2[_0x5a40('0x31')];if(!_0x17046b['query'][_0x5a40('0x35')](_0x5a40('0x36'))){_0x5cd22a[_0x5a40('0x19')]=qs[_0x5a40('0x19')](_0x17046b['query'][_0x5a40('0x19')]);_0x5cd22a[_0x5a40('0x1b')]=qs[_0x5a40('0x1b')](_0x17046b[_0x5a40('0x2d')]['offset']);}_0x5cd22a[_0x5a40('0x37')]=qs[_0x5a40('0x38')](_0x17046b[_0x5a40('0x2d')]['sort']);_0x5cd22a[_0x5a40('0x39')]=qs[_0x5a40('0x2f')](_['pick'](_0x17046b[_0x5a40('0x2d')],_0x19b0a2['filters']),_0x4f44f2);if(_0x17046b['query'][_0x5a40('0x3a')]){_0x5cd22a['where']=_[_0x5a40('0x3b')](_0x5cd22a[_0x5a40('0x39')],{'$or':_['map'](_0x5cd22a[_0x5a40('0x32')],function(_0x20a1a6){var _0x491281={};_0x491281[_0x20a1a6]={'$like':'%'+_0x17046b[_0x5a40('0x2d')][_0x5a40('0x3a')]+'%'};return _0x491281;})});}_0x5cd22a=_[_0x5a40('0x3b')]({},_0x5cd22a,_0x17046b['options']);var _0x16e05c={'where':_0x5cd22a[_0x5a40('0x39')]};return db[_0x5a40('0x2b')][_0x5a40('0x1a')](_0x16e05c)[_0x5a40('0x20')](function(_0x8762fa){_0x1ae9ee[_0x5a40('0x1a')]=_0x8762fa;if(_0x17046b[_0x5a40('0x2d')][_0x5a40('0x3c')]){_0x5cd22a[_0x5a40('0x3d')]=[{'all':!![]}];}return db[_0x5a40('0x2b')][_0x5a40('0x3e')](_0x5cd22a);})['then'](function(_0x183a9e){_0x1ae9ee[_0x5a40('0x3f')]=_0x183a9e;return _0x1ae9ee;})[_0x5a40('0x20')](respondWithFilteredResult(_0x162a7c,_0x5cd22a))[_0x5a40('0x40')](handleError(_0x162a7c,null));})[_0x5a40('0x40')](handleError(_0x162a7c,null));};exports[_0x5a40('0x41')]=function(_0x15fa3a,_0x2ad417){var _0x2f369e={'raw':![],'where':{'id':_0x15fa3a[_0x5a40('0x42')]['id']}},_0x1e7541={};_0x1e7541[_0x5a40('0x31')]=_[_0x5a40('0x2e')](db[_0x5a40('0x2b')][_0x5a40('0x43')]);_0x1e7541[_0x5a40('0x2d')]=_['keys'](_0x15fa3a['query']);_0x1e7541[_0x5a40('0x2f')]=_['intersection'](_0x1e7541['model'],_0x1e7541['query']);_0x2f369e[_0x5a40('0x32')]=_['intersection'](_0x1e7541[_0x5a40('0x31')],qs[_0x5a40('0x33')](_0x15fa3a[_0x5a40('0x2d')][_0x5a40('0x33')]));_0x2f369e[_0x5a40('0x32')]=_0x2f369e[_0x5a40('0x32')]['length']?_0x2f369e['attributes']:_0x1e7541[_0x5a40('0x31')];if(_0x15fa3a[_0x5a40('0x2d')][_0x5a40('0x3c')]){_0x2f369e[_0x5a40('0x3d')]=[{'all':!![]}];}_0x2f369e=_['merge']({},_0x2f369e,_0x15fa3a['options']);return db['CmCompany']['find'](_0x2f369e)[_0x5a40('0x20')](handleEntityNotFound(_0x2ad417,null))[_0x5a40('0x20')](respondWithResult(_0x2ad417,null))[_0x5a40('0x40')](handleError(_0x2ad417,null));};exports[_0x5a40('0x44')]=function(_0x16debb,_0xa6c571){return db[_0x5a40('0x2b')][_0x5a40('0x44')](_0x16debb[_0x5a40('0x45')],{})['then'](function(_0x4ea44f){var _0x21317f=_0x16debb[_0x5a40('0x46')][_0x5a40('0x21')]({'plain':!![]});if(!_0x21317f)throw new Error(_0x5a40('0x47'));if(_0x21317f[_0x5a40('0x48')]==='user'){var _0x308f95=_0x4ea44f['get']({'plain':!![]});var _0x4e7e70=_0x5a40('0x22');return db[_0x5a40('0x49')][_0x5a40('0x4a')]({'where':{'name':_0x4e7e70,'userProfileId':_0x21317f[_0x5a40('0x4b')]},'raw':!![]})[_0x5a40('0x20')](function(_0x40ee41){if(_0x40ee41&&_0x40ee41[_0x5a40('0x4c')]===0x0){return db[_0x5a40('0x23')][_0x5a40('0x44')]({'name':_0x308f95[_0x5a40('0x28')],'resourceId':_0x308f95['id'],'type':_0x40ee41[_0x5a40('0x28')],'sectionId':_0x40ee41['id']},{})[_0x5a40('0x20')](function(){return _0x4ea44f;});}else{return _0x4ea44f;}})[_0x5a40('0x40')](function(_0x5e2364){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5e2364);throw _0x5e2364;});}return _0x4ea44f;})[_0x5a40('0x20')](respondWithResult(_0xa6c571,0xc9))[_0x5a40('0x40')](handleError(_0xa6c571,null));};exports[_0x5a40('0x4d')]=function(_0x24cadb,_0x28f277){if(_0x24cadb[_0x5a40('0x45')]['id']){delete _0x24cadb[_0x5a40('0x45')]['id'];}return db[_0x5a40('0x2b')][_0x5a40('0x4a')]({'where':{'id':_0x24cadb[_0x5a40('0x42')]['id']}})['then'](handleEntityNotFound(_0x28f277,null))['then'](saveUpdates(_0x24cadb[_0x5a40('0x45')],null))[_0x5a40('0x20')](respondWithResult(_0x28f277,null))[_0x5a40('0x40')](handleError(_0x28f277,null));};exports['destroy']=function(_0x375e22,_0x50bb3a){return db[_0x5a40('0x2b')][_0x5a40('0x4a')]({'where':{'id':_0x375e22['params']['id']}})[_0x5a40('0x20')](handleEntityNotFound(_0x50bb3a,null))[_0x5a40('0x20')](removeEntity(_0x50bb3a,null))['catch'](handleError(_0x50bb3a,null));};exports[_0x5a40('0x2c')]=function(_0x2d8359,_0x3ad27c){return db[_0x5a40('0x2b')][_0x5a40('0x2c')]()['then'](respondWithResult(_0x3ad27c,null))[_0x5a40('0x40')](handleError(_0x3ad27c,null));};exports[_0x5a40('0x4e')]=function(_0x587e00,_0x4b08f6,_0x35cd92){return db['CmContact'][_0x5a40('0x4a')]({'where':{'id':_0x587e00['params']['id']}})[_0x5a40('0x20')](handleEntityNotFound(_0x4b08f6,null))[_0x5a40('0x20')](function(_0x302d9a){if(_0x302d9a){return _0x302d9a['addContacts'](_0x587e00[_0x5a40('0x45')][_0x5a40('0x4f')],_['omit'](_0x587e00['body'],[_0x5a40('0x4f'),'id'])||{});}})['then'](respondWithResult(_0x4b08f6,null))[_0x5a40('0x40')](handleError(_0x4b08f6,null));};exports[_0x5a40('0x50')]=function(_0x4eab13,_0x1d16da,_0x5d7ba7){var _0x152344={};var _0x3692c8={};var _0x294495;var _0x40652f;return db[_0x5a40('0x2b')][_0x5a40('0x51')]({'where':{'id':_0x4eab13[_0x5a40('0x42')]['id']}})['then'](handleEntityNotFound(_0x1d16da,null))[_0x5a40('0x20')](function(_0x3af824){if(_0x3af824){_0x294495=_0x3af824;_0x3692c8[_0x5a40('0x31')]=_['keys'](db[_0x5a40('0x52')][_0x5a40('0x43')]);_0x3692c8[_0x5a40('0x2d')]=_[_0x5a40('0x2e')](_0x4eab13['query']);_0x3692c8['filters']=_[_0x5a40('0x30')](_0x3692c8['model'],_0x3692c8[_0x5a40('0x2d')]);_0x152344[_0x5a40('0x32')]=_[_0x5a40('0x30')](_0x3692c8[_0x5a40('0x31')],qs[_0x5a40('0x33')](_0x4eab13[_0x5a40('0x2d')]['fields']));_0x152344[_0x5a40('0x32')]=_0x152344[_0x5a40('0x32')][_0x5a40('0x34')]?_0x152344[_0x5a40('0x32')]:_0x3692c8[_0x5a40('0x31')];_0x152344['order']=qs[_0x5a40('0x38')](_0x4eab13['query'][_0x5a40('0x38')]);_0x152344[_0x5a40('0x39')]=qs[_0x5a40('0x2f')](_[_0x5a40('0x53')](_0x4eab13[_0x5a40('0x2d')],_0x3692c8[_0x5a40('0x2f')]));if(_0x4eab13['query']['filter']){_0x152344['where']=_[_0x5a40('0x3b')](_0x152344[_0x5a40('0x39')],{'$or':_[_0x5a40('0x54')](_0x152344[_0x5a40('0x32')],function(_0x3acc50){var _0xbf46e2={};_0xbf46e2[_0x3acc50]={'$like':'%'+_0x4eab13[_0x5a40('0x2d')]['filter']+'%'};return _0xbf46e2;})});}_0x152344=_['merge']({},_0x152344,_0x4eab13[_0x5a40('0x55')]);return _0x294495['getContacts'](_0x152344);}})['then'](function(_0x55a7cf){if(_0x55a7cf){_0x40652f=_0x55a7cf['length'];if(!_0x4eab13['query'][_0x5a40('0x35')](_0x5a40('0x36'))){_0x152344[_0x5a40('0x19')]=qs[_0x5a40('0x19')](_0x4eab13[_0x5a40('0x2d')][_0x5a40('0x19')]);_0x152344[_0x5a40('0x1b')]=qs[_0x5a40('0x1b')](_0x4eab13[_0x5a40('0x2d')]['offset']);}return _0x294495['getContacts'](_0x152344);}})['then'](function(_0x3a1692){if(_0x3a1692){return _0x3a1692?{'count':_0x40652f,'rows':_0x3a1692}:null;}})[_0x5a40('0x20')](respondWithResult(_0x1d16da,null))['catch'](handleError(_0x1d16da,null));};