f3077113c1e79dd39226e399068abe9e2d738258
[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 _0x8bca=['../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','sendStatus','status','json','limit','undefined','count','offset','set','Content-Range','apply','reject','then','get','Companies','UserProfileResource','destroy','end','error','stack','name','send','CmCompany','describe','keys','query','filters','intersection','attributes','model','length','hasOwnProperty','nolimit','order','sort','where','merge','map','options','includeAll','include','rows','catch','show','rawAttributes','fields','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','find','addContacts','params','ids','getContacts','findOne','CmContact','filter','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x11a613,_0x53d063){var _0x4c09f9=function(_0x2ee2d1){while(--_0x2ee2d1){_0x11a613['push'](_0x11a613['shift']());}};_0x4c09f9(++_0x53d063);}(_0x8bca,0x14b));var _0xa8bc=function(_0x4b2436,_0x452299){_0x4b2436=_0x4b2436-0x0;var _0x4f5ab2=_0x8bca[_0x4b2436];return _0x4f5ab2;};'use strict';var emlformat=require(_0xa8bc('0x0'));var rimraf=require(_0xa8bc('0x1'));var zipdir=require(_0xa8bc('0x2'));var jsonpatch=require(_0xa8bc('0x3'));var rp=require('request-promise');var moment=require(_0xa8bc('0x4'));var BPromise=require(_0xa8bc('0x5'));var Mustache=require(_0xa8bc('0x6'));var util=require(_0xa8bc('0x7'));var path=require('path');var sox=require(_0xa8bc('0x8'));var csv=require(_0xa8bc('0x9'));var ejs=require(_0xa8bc('0xa'));var fs=require('fs');var fs_extra=require(_0xa8bc('0xb'));var _=require('lodash');var squel=require(_0xa8bc('0xc'));var crypto=require(_0xa8bc('0xd'));var jsforce=require(_0xa8bc('0xe'));var deskjs=require(_0xa8bc('0xf'));var toCsv=require('to-csv');var querystring=require(_0xa8bc('0x10'));var Papa=require(_0xa8bc('0x11'));var Redis=require('ioredis');var authService=require(_0xa8bc('0x12'));var qs=require(_0xa8bc('0x13'));var as=require(_0xa8bc('0x14'));var hardwareService=require(_0xa8bc('0x15'));var logger=require(_0xa8bc('0x16'))('api');var utils=require('../../config/utils');var config=require(_0xa8bc('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xa8bc('0x18'))['db'];function respondWithStatusCode(_0x439b98,_0x482fa9){_0x482fa9=_0x482fa9||0xcc;return function(_0x5f0ca8){if(_0x5f0ca8){return _0x439b98[_0xa8bc('0x19')](_0x482fa9);}return _0x439b98[_0xa8bc('0x1a')](_0x482fa9)['end']();};}function respondWithResult(_0x2cb49b,_0x59ee8e){_0x59ee8e=_0x59ee8e||0xc8;return function(_0x271f69){if(_0x271f69){return _0x2cb49b[_0xa8bc('0x1a')](_0x59ee8e)[_0xa8bc('0x1b')](_0x271f69);}};}function respondWithFilteredResult(_0x5a56ba,_0x1168e7){return function(_0x2dcead){if(_0x2dcead){var _0x128279=typeof _0x1168e7['offset']==='undefined'&&typeof _0x1168e7[_0xa8bc('0x1c')]===_0xa8bc('0x1d');var _0x5bcefc=_0x2dcead[_0xa8bc('0x1e')];var _0x61ec41=_0x128279?0x0:_0x1168e7[_0xa8bc('0x1f')];var _0x11e968=_0x128279?_0x2dcead[_0xa8bc('0x1e')]:_0x1168e7[_0xa8bc('0x1f')]+_0x1168e7[_0xa8bc('0x1c')];var _0x2568e5;if(_0x11e968>=_0x5bcefc){_0x11e968=_0x5bcefc;_0x2568e5=0xc8;}else{_0x2568e5=0xce;}_0x5a56ba[_0xa8bc('0x1a')](_0x2568e5);return _0x5a56ba[_0xa8bc('0x20')](_0xa8bc('0x21'),_0x61ec41+'-'+_0x11e968+'/'+_0x5bcefc)[_0xa8bc('0x1b')](_0x2dcead);}return null;};}function patchUpdates(_0xfa18bc){return function(_0x30f22b){try{jsonpatch[_0xa8bc('0x22')](_0x30f22b,_0xfa18bc,!![]);}catch(_0x4304ce){return BPromise[_0xa8bc('0x23')](_0x4304ce);}return _0x30f22b['save']();};}function saveUpdates(_0x2dd243,_0x580d88){return function(_0x2437d8){if(_0x2437d8){return _0x2437d8['update'](_0x2dd243)[_0xa8bc('0x24')](function(_0x4aef1f){return _0x4aef1f;});}return null;};}function removeEntity(_0x435022,_0x479d82){return function(_0x1e1223){if(_0x1e1223){return _0x1e1223['destroy']()[_0xa8bc('0x24')](function(){var _0x338bc0=_0x1e1223[_0xa8bc('0x25')]({'plain':!![]});var _0x8a50fa=_0xa8bc('0x26');return db[_0xa8bc('0x27')][_0xa8bc('0x28')]({'where':{'type':_0x8a50fa,'resourceId':_0x338bc0['id']}})[_0xa8bc('0x24')](function(){return _0x1e1223;});})[_0xa8bc('0x24')](function(){_0x435022['status'](0xcc)[_0xa8bc('0x29')]();});}};}function handleEntityNotFound(_0xa6fc58,_0x20dca9){return function(_0xa8d39f){if(!_0xa8d39f){_0xa6fc58[_0xa8bc('0x19')](0x194);}return _0xa8d39f;};}function handleError(_0x459e64,_0x409598){_0x409598=_0x409598||0x1f4;return function(_0x5a3736){logger[_0xa8bc('0x2a')](_0x5a3736[_0xa8bc('0x2b')]);if(_0x5a3736[_0xa8bc('0x2c')]){delete _0x5a3736[_0xa8bc('0x2c')];}_0x459e64[_0xa8bc('0x1a')](_0x409598)[_0xa8bc('0x2d')](_0x5a3736);};}exports['index']=function(_0x482486,_0x349cee){var _0x59315e={},_0x448b8d={},_0x206631={'count':0x0,'rows':[]};return db[_0xa8bc('0x2e')][_0xa8bc('0x2f')]()[_0xa8bc('0x24')](function(_0x497d1b){_0x448b8d['model']=_[_0xa8bc('0x30')](_0x497d1b);_0x448b8d[_0xa8bc('0x31')]=_['keys'](_0x482486['query']);_0x448b8d[_0xa8bc('0x32')]=_[_0xa8bc('0x33')](_0x448b8d['model'],_0x448b8d['query']);_0x59315e[_0xa8bc('0x34')]=_[_0xa8bc('0x33')](_0x448b8d[_0xa8bc('0x35')],qs['fields'](_0x482486[_0xa8bc('0x31')]['fields']));_0x59315e[_0xa8bc('0x34')]=_0x59315e[_0xa8bc('0x34')][_0xa8bc('0x36')]?_0x59315e[_0xa8bc('0x34')]:_0x448b8d['model'];if(!_0x482486[_0xa8bc('0x31')][_0xa8bc('0x37')](_0xa8bc('0x38'))){_0x59315e[_0xa8bc('0x1c')]=qs[_0xa8bc('0x1c')](_0x482486[_0xa8bc('0x31')][_0xa8bc('0x1c')]);_0x59315e[_0xa8bc('0x1f')]=qs[_0xa8bc('0x1f')](_0x482486[_0xa8bc('0x31')]['offset']);}_0x59315e[_0xa8bc('0x39')]=qs[_0xa8bc('0x3a')](_0x482486['query']['sort']);_0x59315e[_0xa8bc('0x3b')]=qs[_0xa8bc('0x32')](_['pick'](_0x482486[_0xa8bc('0x31')],_0x448b8d[_0xa8bc('0x32')]),_0x497d1b);if(_0x482486[_0xa8bc('0x31')]['filter']){_0x59315e[_0xa8bc('0x3b')]=_[_0xa8bc('0x3c')](_0x59315e['where'],{'$or':_[_0xa8bc('0x3d')](_0x59315e[_0xa8bc('0x34')],function(_0x37ff40){var _0x521757={};_0x521757[_0x37ff40]={'$like':'%'+_0x482486[_0xa8bc('0x31')]['filter']+'%'};return _0x521757;})});}_0x59315e=_['merge']({},_0x59315e,_0x482486[_0xa8bc('0x3e')]);var _0x327b7c={'where':_0x59315e[_0xa8bc('0x3b')]};return db[_0xa8bc('0x2e')][_0xa8bc('0x1e')](_0x327b7c)[_0xa8bc('0x24')](function(_0x3446c3){_0x206631['count']=_0x3446c3;if(_0x482486['query'][_0xa8bc('0x3f')]){_0x59315e[_0xa8bc('0x40')]=[{'all':!![]}];}return db['CmCompany']['findAll'](_0x59315e);})[_0xa8bc('0x24')](function(_0x7aa5d1){_0x206631[_0xa8bc('0x41')]=_0x7aa5d1;return _0x206631;})['then'](respondWithFilteredResult(_0x349cee,_0x59315e))['catch'](handleError(_0x349cee,null));})[_0xa8bc('0x42')](handleError(_0x349cee,null));};exports[_0xa8bc('0x43')]=function(_0x269f64,_0x1806fd){var _0x1e91e3={'raw':![],'where':{'id':_0x269f64['params']['id']}},_0x5c5469={};_0x5c5469['model']=_[_0xa8bc('0x30')](db[_0xa8bc('0x2e')][_0xa8bc('0x44')]);_0x5c5469['query']=_[_0xa8bc('0x30')](_0x269f64[_0xa8bc('0x31')]);_0x5c5469[_0xa8bc('0x32')]=_[_0xa8bc('0x33')](_0x5c5469[_0xa8bc('0x35')],_0x5c5469['query']);_0x1e91e3[_0xa8bc('0x34')]=_[_0xa8bc('0x33')](_0x5c5469[_0xa8bc('0x35')],qs['fields'](_0x269f64['query'][_0xa8bc('0x45')]));_0x1e91e3['attributes']=_0x1e91e3[_0xa8bc('0x34')][_0xa8bc('0x36')]?_0x1e91e3['attributes']:_0x5c5469['model'];if(_0x269f64[_0xa8bc('0x31')][_0xa8bc('0x3f')]){_0x1e91e3['include']=[{'all':!![]}];}_0x1e91e3=_[_0xa8bc('0x3c')]({},_0x1e91e3,_0x269f64[_0xa8bc('0x3e')]);return db['CmCompany']['find'](_0x1e91e3)[_0xa8bc('0x24')](handleEntityNotFound(_0x1806fd,null))[_0xa8bc('0x24')](respondWithResult(_0x1806fd,null))['catch'](handleError(_0x1806fd,null));};exports[_0xa8bc('0x46')]=function(_0x5f46b6,_0x441a47){return db[_0xa8bc('0x2e')][_0xa8bc('0x46')](_0x5f46b6[_0xa8bc('0x47')],{})[_0xa8bc('0x24')](function(_0x48bb83){var _0x2d54b4=_0x5f46b6[_0xa8bc('0x48')][_0xa8bc('0x25')]({'plain':!![]});if(!_0x2d54b4)throw new Error(_0xa8bc('0x49'));if(_0x2d54b4[_0xa8bc('0x4a')]===_0xa8bc('0x48')){var _0xd4918=_0x48bb83[_0xa8bc('0x25')]({'plain':!![]});var _0x531307=_0xa8bc('0x26');return db[_0xa8bc('0x4b')]['find']({'where':{'name':_0x531307,'userProfileId':_0x2d54b4[_0xa8bc('0x4c')]},'raw':!![]})['then'](function(_0x2b6913){if(_0x2b6913&&_0x2b6913[_0xa8bc('0x4d')]===0x0){return db[_0xa8bc('0x27')][_0xa8bc('0x46')]({'name':_0xd4918[_0xa8bc('0x2c')],'resourceId':_0xd4918['id'],'type':_0x2b6913['name'],'sectionId':_0x2b6913['id']},{})['then'](function(){return _0x48bb83;});}else{return _0x48bb83;}})[_0xa8bc('0x42')](function(_0x1aa21b){logger[_0xa8bc('0x2a')](_0xa8bc('0x4e'),_0x1aa21b);throw _0x1aa21b;});}return _0x48bb83;})[_0xa8bc('0x24')](respondWithResult(_0x441a47,0xc9))[_0xa8bc('0x42')](handleError(_0x441a47,null));};exports[_0xa8bc('0x4f')]=function(_0x33b2e3,_0x5bd490){if(_0x33b2e3['body']['id']){delete _0x33b2e3[_0xa8bc('0x47')]['id'];}return db[_0xa8bc('0x2e')][_0xa8bc('0x50')]({'where':{'id':_0x33b2e3['params']['id']}})[_0xa8bc('0x24')](handleEntityNotFound(_0x5bd490,null))[_0xa8bc('0x24')](saveUpdates(_0x33b2e3[_0xa8bc('0x47')],null))[_0xa8bc('0x24')](respondWithResult(_0x5bd490,null))[_0xa8bc('0x42')](handleError(_0x5bd490,null));};exports[_0xa8bc('0x28')]=function(_0x2abf91,_0x26113b){return db[_0xa8bc('0x2e')][_0xa8bc('0x50')]({'where':{'id':_0x2abf91['params']['id']}})['then'](handleEntityNotFound(_0x26113b,null))[_0xa8bc('0x24')](removeEntity(_0x26113b,null))['catch'](handleError(_0x26113b,null));};exports[_0xa8bc('0x2f')]=function(_0x267a63,_0x195ba0){return db[_0xa8bc('0x2e')]['describe']()[_0xa8bc('0x24')](respondWithResult(_0x195ba0,null))[_0xa8bc('0x42')](handleError(_0x195ba0,null));};exports[_0xa8bc('0x51')]=function(_0x48b7c4,_0x2d6a18,_0x537d0f){return db['CmContact'][_0xa8bc('0x50')]({'where':{'id':_0x48b7c4[_0xa8bc('0x52')]['id']}})[_0xa8bc('0x24')](handleEntityNotFound(_0x2d6a18,null))[_0xa8bc('0x24')](function(_0x18d619){if(_0x18d619){return _0x18d619[_0xa8bc('0x51')](_0x48b7c4['body'][_0xa8bc('0x53')],_['omit'](_0x48b7c4[_0xa8bc('0x47')],[_0xa8bc('0x53'),'id'])||{});}})[_0xa8bc('0x24')](respondWithResult(_0x2d6a18,null))['catch'](handleError(_0x2d6a18,null));};exports[_0xa8bc('0x54')]=function(_0x53014f,_0x545834,_0x4a0246){var _0x219eae={};var _0x431de0={};var _0x439182;var _0x3c56d4;return db[_0xa8bc('0x2e')][_0xa8bc('0x55')]({'where':{'id':_0x53014f[_0xa8bc('0x52')]['id']}})[_0xa8bc('0x24')](handleEntityNotFound(_0x545834,null))['then'](function(_0x1f736f){if(_0x1f736f){_0x439182=_0x1f736f;_0x431de0[_0xa8bc('0x35')]=_['keys'](db[_0xa8bc('0x56')][_0xa8bc('0x44')]);_0x431de0[_0xa8bc('0x31')]=_[_0xa8bc('0x30')](_0x53014f[_0xa8bc('0x31')]);_0x431de0['filters']=_[_0xa8bc('0x33')](_0x431de0[_0xa8bc('0x35')],_0x431de0['query']);_0x219eae[_0xa8bc('0x34')]=_[_0xa8bc('0x33')](_0x431de0['model'],qs[_0xa8bc('0x45')](_0x53014f[_0xa8bc('0x31')]['fields']));_0x219eae[_0xa8bc('0x34')]=_0x219eae['attributes'][_0xa8bc('0x36')]?_0x219eae[_0xa8bc('0x34')]:_0x431de0[_0xa8bc('0x35')];_0x219eae[_0xa8bc('0x39')]=qs[_0xa8bc('0x3a')](_0x53014f[_0xa8bc('0x31')]['sort']);_0x219eae[_0xa8bc('0x3b')]=qs['filters'](_['pick'](_0x53014f[_0xa8bc('0x31')],_0x431de0[_0xa8bc('0x32')]));if(_0x53014f[_0xa8bc('0x31')][_0xa8bc('0x57')]){_0x219eae[_0xa8bc('0x3b')]=_[_0xa8bc('0x3c')](_0x219eae[_0xa8bc('0x3b')],{'$or':_[_0xa8bc('0x3d')](_0x219eae['attributes'],function(_0x4ec7b7){var _0x55e7c7={};_0x55e7c7[_0x4ec7b7]={'$like':'%'+_0x53014f[_0xa8bc('0x31')][_0xa8bc('0x57')]+'%'};return _0x55e7c7;})});}_0x219eae=_[_0xa8bc('0x3c')]({},_0x219eae,_0x53014f[_0xa8bc('0x3e')]);return _0x439182[_0xa8bc('0x54')](_0x219eae);}})[_0xa8bc('0x24')](function(_0x5ecbcd){if(_0x5ecbcd){_0x3c56d4=_0x5ecbcd['length'];if(!_0x53014f[_0xa8bc('0x31')]['hasOwnProperty'](_0xa8bc('0x38'))){_0x219eae['limit']=qs[_0xa8bc('0x1c')](_0x53014f[_0xa8bc('0x31')]['limit']);_0x219eae['offset']=qs[_0xa8bc('0x1f')](_0x53014f[_0xa8bc('0x31')]['offset']);}return _0x439182['getContacts'](_0x219eae);}})['then'](function(_0x2123fd){if(_0x2123fd){return _0x2123fd?{'count':_0x3c56d4,'rows':_0x2123fd}:null;}})[_0xa8bc('0x24')](respondWithResult(_0x545834,null))[_0xa8bc('0x42')](handleError(_0x545834,null));};