Built motion from commit (unavailable).|2.5.31
[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 _0x2032=['index','describe','keys','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','order','sort','filter','where','merge','options','include','findAll','catch','show','params','CmCompany','rawAttributes','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','addContacts','CmContact','ids','omit','getContacts','findOne','pick','nolimit','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','destroy','get','Companies','sendStatus','error','stack','name','send'];(function(_0x2124e4,_0x4f77d0){var _0x28f988=function(_0xd99abb){while(--_0xd99abb){_0x2124e4['push'](_0x2124e4['shift']());}};_0x28f988(++_0x4f77d0);}(_0x2032,0xd9));var _0x2203=function(_0x4c3f41,_0x1dfc6a){_0x4c3f41=_0x4c3f41-0x0;var _0x877a58=_0x2032[_0x4c3f41];return _0x877a58;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2203('0x0'));var zipdir=require(_0x2203('0x1'));var jsonpatch=require(_0x2203('0x2'));var rp=require('request-promise');var moment=require(_0x2203('0x3'));var BPromise=require(_0x2203('0x4'));var Mustache=require('mustache');var util=require(_0x2203('0x5'));var path=require(_0x2203('0x6'));var sox=require(_0x2203('0x7'));var csv=require(_0x2203('0x8'));var ejs=require(_0x2203('0x9'));var fs=require('fs');var fs_extra=require(_0x2203('0xa'));var _=require(_0x2203('0xb'));var squel=require(_0x2203('0xc'));var crypto=require(_0x2203('0xd'));var jsforce=require(_0x2203('0xe'));var deskjs=require(_0x2203('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x2203('0x10'));var Redis=require('ioredis');var authService=require(_0x2203('0x11'));var qs=require(_0x2203('0x12'));var as=require(_0x2203('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2203('0x14'))('api');var utils=require(_0x2203('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x2203('0x16'));var db=require(_0x2203('0x17'))['db'];function respondWithStatusCode(_0x4b9376,_0x583bc7){_0x583bc7=_0x583bc7||0xcc;return function(_0x585c76){if(_0x585c76){return _0x4b9376['sendStatus'](_0x583bc7);}return _0x4b9376['status'](_0x583bc7)[_0x2203('0x18')]();};}function respondWithResult(_0x538b30,_0x592e47){_0x592e47=_0x592e47||0xc8;return function(_0x21a3af){if(_0x21a3af){return _0x538b30[_0x2203('0x19')](_0x592e47)[_0x2203('0x1a')](_0x21a3af);}};}function respondWithFilteredResult(_0x41af85,_0x226209){return function(_0x3fe0a8){if(_0x3fe0a8){var _0x2c36e6=typeof _0x226209[_0x2203('0x1b')]===_0x2203('0x1c')&&typeof _0x226209[_0x2203('0x1d')]==='undefined';var _0x280eda=_0x3fe0a8[_0x2203('0x1e')];var _0x4893ff=_0x2c36e6?0x0:_0x226209[_0x2203('0x1b')];var _0x8906e1=_0x2c36e6?_0x3fe0a8['count']:_0x226209[_0x2203('0x1b')]+_0x226209['limit'];var _0x2904ba;if(_0x8906e1>=_0x280eda){_0x8906e1=_0x280eda;_0x2904ba=0xc8;}else{_0x2904ba=0xce;}_0x41af85[_0x2203('0x19')](_0x2904ba);return _0x41af85[_0x2203('0x1f')](_0x2203('0x20'),_0x4893ff+'-'+_0x8906e1+'/'+_0x280eda)[_0x2203('0x1a')](_0x3fe0a8);}return null;};}function patchUpdates(_0x449039){return function(_0x538c23){try{jsonpatch[_0x2203('0x21')](_0x538c23,_0x449039,!![]);}catch(_0x50822b){return BPromise['reject'](_0x50822b);}return _0x538c23[_0x2203('0x22')]();};}function saveUpdates(_0x496d82,_0x3b8ef9){return function(_0x5bfe61){if(_0x5bfe61){return _0x5bfe61['update'](_0x496d82)[_0x2203('0x23')](function(_0x5e29cd){return _0x5e29cd;});}return null;};}function removeEntity(_0x5c8da9,_0x226374){return function(_0x2718f5){if(_0x2718f5){return _0x2718f5[_0x2203('0x24')]()[_0x2203('0x23')](function(){var _0x1244f4=_0x2718f5[_0x2203('0x25')]({'plain':!![]});var _0x49c12=_0x2203('0x26');return db['UserProfileResource'][_0x2203('0x24')]({'where':{'type':_0x49c12,'resourceId':_0x1244f4['id']}})[_0x2203('0x23')](function(){return _0x2718f5;});})[_0x2203('0x23')](function(){_0x5c8da9['status'](0xcc)[_0x2203('0x18')]();});}};}function handleEntityNotFound(_0x1cec17,_0x5c5fd3){return function(_0xd6e109){if(!_0xd6e109){_0x1cec17[_0x2203('0x27')](0x194);}return _0xd6e109;};}function handleError(_0x1c6a77,_0x46b8b9){_0x46b8b9=_0x46b8b9||0x1f4;return function(_0x28ae02){logger[_0x2203('0x28')](_0x28ae02[_0x2203('0x29')]);if(_0x28ae02['name']){delete _0x28ae02[_0x2203('0x2a')];}_0x1c6a77[_0x2203('0x19')](_0x46b8b9)[_0x2203('0x2b')](_0x28ae02);};}exports[_0x2203('0x2c')]=function(_0x52a426,_0x3a8e23){var _0x21ff0d={},_0x287c95={},_0xf59954={'count':0x0,'rows':[]};return db['CmCompany'][_0x2203('0x2d')]()[_0x2203('0x23')](function(_0x5e6560){_0x287c95['model']=_[_0x2203('0x2e')](_0x5e6560);_0x287c95['query']=_['keys'](_0x52a426[_0x2203('0x2f')]);_0x287c95[_0x2203('0x30')]=_[_0x2203('0x31')](_0x287c95[_0x2203('0x32')],_0x287c95[_0x2203('0x2f')]);_0x21ff0d['attributes']=_[_0x2203('0x31')](_0x287c95[_0x2203('0x32')],qs['fields'](_0x52a426[_0x2203('0x2f')][_0x2203('0x33')]));_0x21ff0d[_0x2203('0x34')]=_0x21ff0d[_0x2203('0x34')][_0x2203('0x35')]?_0x21ff0d[_0x2203('0x34')]:_0x287c95[_0x2203('0x32')];if(!_0x52a426[_0x2203('0x2f')][_0x2203('0x36')]('nolimit')){_0x21ff0d[_0x2203('0x1d')]=qs[_0x2203('0x1d')](_0x52a426['query']['limit']);_0x21ff0d[_0x2203('0x1b')]=qs['offset'](_0x52a426[_0x2203('0x2f')][_0x2203('0x1b')]);}_0x21ff0d[_0x2203('0x37')]=qs['sort'](_0x52a426['query'][_0x2203('0x38')]);_0x21ff0d['where']=qs[_0x2203('0x30')](_['pick'](_0x52a426[_0x2203('0x2f')],_0x287c95['filters']),_0x5e6560);if(_0x52a426[_0x2203('0x2f')][_0x2203('0x39')]){_0x21ff0d[_0x2203('0x3a')]=_[_0x2203('0x3b')](_0x21ff0d[_0x2203('0x3a')],{'$or':_['map'](_0x21ff0d['attributes'],function(_0x4c0e9e){var _0x7ea79b={};_0x7ea79b[_0x4c0e9e]={'$like':'%'+_0x52a426[_0x2203('0x2f')][_0x2203('0x39')]+'%'};return _0x7ea79b;})});}_0x21ff0d=_[_0x2203('0x3b')]({},_0x21ff0d,_0x52a426[_0x2203('0x3c')]);var _0x3b250a={'where':_0x21ff0d[_0x2203('0x3a')]};return db['CmCompany'][_0x2203('0x1e')](_0x3b250a)[_0x2203('0x23')](function(_0x108fde){_0xf59954[_0x2203('0x1e')]=_0x108fde;if(_0x52a426['query']['includeAll']){_0x21ff0d[_0x2203('0x3d')]=[{'all':!![]}];}return db['CmCompany'][_0x2203('0x3e')](_0x21ff0d);})[_0x2203('0x23')](function(_0x132091){_0xf59954['rows']=_0x132091;return _0xf59954;})['then'](respondWithFilteredResult(_0x3a8e23,_0x21ff0d))[_0x2203('0x3f')](handleError(_0x3a8e23,null));})[_0x2203('0x3f')](handleError(_0x3a8e23,null));};exports[_0x2203('0x40')]=function(_0x1e09f3,_0x372709){var _0x1fa734={'raw':![],'where':{'id':_0x1e09f3[_0x2203('0x41')]['id']}},_0x5cd573={};_0x5cd573[_0x2203('0x32')]=_[_0x2203('0x2e')](db[_0x2203('0x42')][_0x2203('0x43')]);_0x5cd573[_0x2203('0x2f')]=_[_0x2203('0x2e')](_0x1e09f3[_0x2203('0x2f')]);_0x5cd573[_0x2203('0x30')]=_[_0x2203('0x31')](_0x5cd573['model'],_0x5cd573[_0x2203('0x2f')]);_0x1fa734[_0x2203('0x34')]=_[_0x2203('0x31')](_0x5cd573[_0x2203('0x32')],qs['fields'](_0x1e09f3['query'][_0x2203('0x33')]));_0x1fa734['attributes']=_0x1fa734[_0x2203('0x34')][_0x2203('0x35')]?_0x1fa734[_0x2203('0x34')]:_0x5cd573[_0x2203('0x32')];if(_0x1e09f3['query'][_0x2203('0x44')]){_0x1fa734[_0x2203('0x3d')]=[{'all':!![]}];}_0x1fa734=_['merge']({},_0x1fa734,_0x1e09f3[_0x2203('0x3c')]);return db[_0x2203('0x42')][_0x2203('0x45')](_0x1fa734)[_0x2203('0x23')](handleEntityNotFound(_0x372709,null))['then'](respondWithResult(_0x372709,null))['catch'](handleError(_0x372709,null));};exports[_0x2203('0x46')]=function(_0x5707c8,_0x543fde){return db[_0x2203('0x42')][_0x2203('0x46')](_0x5707c8[_0x2203('0x47')],{})['then'](function(_0x4c1496){var _0x131aec=_0x5707c8[_0x2203('0x48')][_0x2203('0x25')]({'plain':!![]});if(!_0x131aec)throw new Error(_0x2203('0x49'));if(_0x131aec[_0x2203('0x4a')]===_0x2203('0x48')){var _0x4a7f4e=_0x4c1496[_0x2203('0x25')]({'plain':!![]});var _0x557659=_0x2203('0x26');return db[_0x2203('0x4b')][_0x2203('0x45')]({'where':{'name':_0x557659,'userProfileId':_0x131aec[_0x2203('0x4c')]},'raw':!![]})['then'](function(_0x506795){if(_0x506795&&_0x506795[_0x2203('0x4d')]===0x0){return db[_0x2203('0x4e')][_0x2203('0x46')]({'name':_0x4a7f4e[_0x2203('0x2a')],'resourceId':_0x4a7f4e['id'],'type':_0x506795['name'],'sectionId':_0x506795['id']},{})['then'](function(){return _0x4c1496;});}else{return _0x4c1496;}})['catch'](function(_0x4064d5){logger[_0x2203('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4064d5);throw _0x4064d5;});}return _0x4c1496;})[_0x2203('0x23')](respondWithResult(_0x543fde,0xc9))[_0x2203('0x3f')](handleError(_0x543fde,null));};exports['update']=function(_0x32b1db,_0xb47204){if(_0x32b1db[_0x2203('0x47')]['id']){delete _0x32b1db[_0x2203('0x47')]['id'];}return db['CmCompany'][_0x2203('0x45')]({'where':{'id':_0x32b1db['params']['id']}})[_0x2203('0x23')](handleEntityNotFound(_0xb47204,null))[_0x2203('0x23')](saveUpdates(_0x32b1db['body'],null))[_0x2203('0x23')](respondWithResult(_0xb47204,null))[_0x2203('0x3f')](handleError(_0xb47204,null));};exports[_0x2203('0x24')]=function(_0x378132,_0x3f335a){return db[_0x2203('0x42')]['find']({'where':{'id':_0x378132['params']['id']}})[_0x2203('0x23')](handleEntityNotFound(_0x3f335a,null))['then'](removeEntity(_0x3f335a,null))['catch'](handleError(_0x3f335a,null));};exports[_0x2203('0x2d')]=function(_0x33e5eb,_0x14e5d9){return db['CmCompany'][_0x2203('0x2d')]()['then'](respondWithResult(_0x14e5d9,null))['catch'](handleError(_0x14e5d9,null));};exports[_0x2203('0x4f')]=function(_0x5be4b6,_0x54ec71,_0x5efc59){return db[_0x2203('0x50')][_0x2203('0x45')]({'where':{'id':_0x5be4b6[_0x2203('0x41')]['id']}})[_0x2203('0x23')](handleEntityNotFound(_0x54ec71,null))[_0x2203('0x23')](function(_0x32f593){if(_0x32f593){return _0x32f593[_0x2203('0x4f')](_0x5be4b6[_0x2203('0x47')][_0x2203('0x51')],_[_0x2203('0x52')](_0x5be4b6[_0x2203('0x47')],[_0x2203('0x51'),'id'])||{});}})['then'](respondWithResult(_0x54ec71,null))['catch'](handleError(_0x54ec71,null));};exports[_0x2203('0x53')]=function(_0x43d8c0,_0x2511bd,_0x2446be){var _0x26382f={};var _0x147196={};var _0x4f8b8e;var _0x5486f9;return db[_0x2203('0x42')][_0x2203('0x54')]({'where':{'id':_0x43d8c0[_0x2203('0x41')]['id']}})[_0x2203('0x23')](handleEntityNotFound(_0x2511bd,null))[_0x2203('0x23')](function(_0x7b0b9c){if(_0x7b0b9c){_0x4f8b8e=_0x7b0b9c;_0x147196[_0x2203('0x32')]=_[_0x2203('0x2e')](db[_0x2203('0x50')][_0x2203('0x43')]);_0x147196[_0x2203('0x2f')]=_['keys'](_0x43d8c0[_0x2203('0x2f')]);_0x147196[_0x2203('0x30')]=_[_0x2203('0x31')](_0x147196[_0x2203('0x32')],_0x147196[_0x2203('0x2f')]);_0x26382f[_0x2203('0x34')]=_[_0x2203('0x31')](_0x147196[_0x2203('0x32')],qs[_0x2203('0x33')](_0x43d8c0[_0x2203('0x2f')][_0x2203('0x33')]));_0x26382f[_0x2203('0x34')]=_0x26382f[_0x2203('0x34')][_0x2203('0x35')]?_0x26382f[_0x2203('0x34')]:_0x147196[_0x2203('0x32')];_0x26382f[_0x2203('0x37')]=qs[_0x2203('0x38')](_0x43d8c0[_0x2203('0x2f')][_0x2203('0x38')]);_0x26382f['where']=qs[_0x2203('0x30')](_[_0x2203('0x55')](_0x43d8c0[_0x2203('0x2f')],_0x147196['filters']));if(_0x43d8c0[_0x2203('0x2f')][_0x2203('0x39')]){_0x26382f[_0x2203('0x3a')]=_[_0x2203('0x3b')](_0x26382f[_0x2203('0x3a')],{'$or':_['map'](_0x26382f[_0x2203('0x34')],function(_0x11243d){var _0x1c63bf={};_0x1c63bf[_0x11243d]={'$like':'%'+_0x43d8c0['query']['filter']+'%'};return _0x1c63bf;})});}_0x26382f=_['merge']({},_0x26382f,_0x43d8c0['options']);return _0x4f8b8e['getContacts'](_0x26382f);}})[_0x2203('0x23')](function(_0xbc9f88){if(_0xbc9f88){_0x5486f9=_0xbc9f88[_0x2203('0x35')];if(!_0x43d8c0[_0x2203('0x2f')][_0x2203('0x36')](_0x2203('0x56'))){_0x26382f[_0x2203('0x1d')]=qs[_0x2203('0x1d')](_0x43d8c0['query']['limit']);_0x26382f[_0x2203('0x1b')]=qs[_0x2203('0x1b')](_0x43d8c0[_0x2203('0x2f')][_0x2203('0x1b')]);}return _0x4f8b8e[_0x2203('0x53')](_0x26382f);}})[_0x2203('0x23')](function(_0x45cc3a){if(_0x45cc3a){return _0x45cc3a?{'count':_0x5486f9,'rows':_0x45cc3a}:null;}})[_0x2203('0x23')](respondWithResult(_0x2511bd,null))[_0x2203('0x3f')](handleError(_0x2511bd,null));};