7f8f80f792b7ca97fdb7fe5a167432ab3e639592
[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 _0x1862=['find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Companies','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addContacts','CmContact','ids','omit','getContacts','findOne','hasOwnProperty','html-pdf','eml-format','rimraf','zip-dir','moment','bluebird','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','sendStatus','status','end','json','count','limit','set','Content-Range','apply','update','destroy','get','then','error','stack','name','index','CmCompany','describe','model','keys','filters','intersection','query','attributes','fields','length','nolimit','offset','order','sort','pick','filter','where','merge','map','options','includeAll','findAll','rows','catch','show','params','rawAttributes','include'];(function(_0x3d0ac1,_0x428c40){var _0xc336e4=function(_0x192d47){while(--_0x192d47){_0x3d0ac1['push'](_0x3d0ac1['shift']());}};_0xc336e4(++_0x428c40);}(_0x1862,0x66));var _0x2186=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1862[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x2186('0x0'));var emlformat=require(_0x2186('0x1'));var rimraf=require(_0x2186('0x2'));var zipdir=require(_0x2186('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x2186('0x4'));var BPromise=require(_0x2186('0x5'));var Mustache=require('mustache');var util=require(_0x2186('0x6'));var path=require(_0x2186('0x7'));var sox=require('sox');var csv=require(_0x2186('0x8'));var ejs=require(_0x2186('0x9'));var fs=require('fs');var _=require(_0x2186('0xa'));var squel=require(_0x2186('0xb'));var crypto=require('crypto');var jsforce=require(_0x2186('0xc'));var deskjs=require(_0x2186('0xd'));var toCsv=require(_0x2186('0x8'));var querystring=require('querystring');var Papa=require(_0x2186('0xe'));var Redis=require(_0x2186('0xf'));var authService=require(_0x2186('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x2186('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2186('0x12'))(_0x2186('0x13'));var utils=require('../../config/utils');var config=require(_0x2186('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5452d5,_0x1a568f){_0x1a568f=_0x1a568f||0xcc;return function(_0x2596a9){if(_0x2596a9){return _0x5452d5[_0x2186('0x15')](_0x1a568f);}return _0x5452d5[_0x2186('0x16')](_0x1a568f)[_0x2186('0x17')]();};}function respondWithResult(_0x40fedc,_0xdccb07){_0xdccb07=_0xdccb07||0xc8;return function(_0x39562b){if(_0x39562b){return _0x40fedc['status'](_0xdccb07)[_0x2186('0x18')](_0x39562b);}};}function respondWithFilteredResult(_0xb2717e,_0x3ed0d4){return function(_0x4c3c74){if(_0x4c3c74){var _0x7cc29c=_0x4c3c74[_0x2186('0x19')],_0x4e50f8=_0x3ed0d4['offset'],_0x964472=_0x3ed0d4['offset']+_0x3ed0d4[_0x2186('0x1a')],_0x2963a3;if(_0x964472>=_0x7cc29c){_0x964472=_0x7cc29c;_0x2963a3=0xc8;}else{_0x2963a3=0xce;}_0xb2717e['status'](_0x2963a3);return _0xb2717e[_0x2186('0x1b')](_0x2186('0x1c'),_0x4e50f8+'-'+_0x964472+'/'+_0x7cc29c)[_0x2186('0x18')](_0x4c3c74);}return null;};}function patchUpdates(_0x573a94){return function(_0x55445b){try{jsonpatch[_0x2186('0x1d')](_0x55445b,_0x573a94,!![]);}catch(_0x1737cb){return BPromise['reject'](_0x1737cb);}return _0x55445b['save']();};}function saveUpdates(_0x3e2a20,_0x40c62b){return function(_0x24232f){if(_0x24232f){return _0x24232f[_0x2186('0x1e')](_0x3e2a20)['then'](function(_0x13dc71){return _0x13dc71;});}return null;};}function removeEntity(_0x4df6be,_0x5c7993){return function(_0x583f69){if(_0x583f69){return _0x583f69[_0x2186('0x1f')]()['then'](function(){var _0x54d526=_0x583f69[_0x2186('0x20')]({'plain':!![]});var _0x2a4184='Companies';return db['UserProfileResource']['destroy']({'where':{'type':_0x2a4184,'resourceId':_0x54d526['id']}})[_0x2186('0x21')](function(){return _0x583f69;});})[_0x2186('0x21')](function(){_0x4df6be[_0x2186('0x16')](0xcc)[_0x2186('0x17')]();});}};}function handleEntityNotFound(_0x3b1354,_0x446435){return function(_0x2b1e6a){if(!_0x2b1e6a){_0x3b1354[_0x2186('0x15')](0x194);}return _0x2b1e6a;};}function handleError(_0x3bd191,_0x30d626){_0x30d626=_0x30d626||0x1f4;return function(_0x2038db){logger[_0x2186('0x22')](_0x2038db[_0x2186('0x23')]);if(_0x2038db[_0x2186('0x24')]){delete _0x2038db[_0x2186('0x24')];}_0x3bd191['status'](_0x30d626)['send'](_0x2038db);};}exports[_0x2186('0x25')]=function(_0x1fc2d6,_0x45c328){var _0x1cded6={},_0x5e134e={},_0x30c022={'count':0x0,'rows':[]};return db[_0x2186('0x26')][_0x2186('0x27')]()[_0x2186('0x21')](function(_0x401575){_0x5e134e[_0x2186('0x28')]=_['keys'](_0x401575);_0x5e134e['query']=_[_0x2186('0x29')](_0x1fc2d6['query']);_0x5e134e[_0x2186('0x2a')]=_[_0x2186('0x2b')](_0x5e134e[_0x2186('0x28')],_0x5e134e[_0x2186('0x2c')]);_0x1cded6[_0x2186('0x2d')]=_[_0x2186('0x2b')](_0x5e134e['model'],qs['fields'](_0x1fc2d6['query'][_0x2186('0x2e')]));_0x1cded6[_0x2186('0x2d')]=_0x1cded6[_0x2186('0x2d')][_0x2186('0x2f')]?_0x1cded6[_0x2186('0x2d')]:_0x5e134e[_0x2186('0x28')];if(!_0x1fc2d6['query']['hasOwnProperty'](_0x2186('0x30'))){_0x1cded6[_0x2186('0x1a')]=qs['limit'](_0x1fc2d6[_0x2186('0x2c')][_0x2186('0x1a')]);_0x1cded6['offset']=qs[_0x2186('0x31')](_0x1fc2d6[_0x2186('0x2c')][_0x2186('0x31')]);}_0x1cded6[_0x2186('0x32')]=qs[_0x2186('0x33')](_0x1fc2d6[_0x2186('0x2c')][_0x2186('0x33')]);_0x1cded6['where']=qs[_0x2186('0x2a')](_[_0x2186('0x34')](_0x1fc2d6['query'],_0x5e134e[_0x2186('0x2a')]));if(_0x1fc2d6[_0x2186('0x2c')][_0x2186('0x35')]){_0x1cded6[_0x2186('0x36')]=_[_0x2186('0x37')](_0x1cded6[_0x2186('0x36')],{'$or':_[_0x2186('0x38')](_0x1cded6[_0x2186('0x2d')],function(_0x4e6d62){var _0x502f4b={};_0x502f4b[_0x4e6d62]={'$like':'%'+_0x1fc2d6[_0x2186('0x2c')][_0x2186('0x35')]+'%'};return _0x502f4b;})});}_0x1cded6=_[_0x2186('0x37')]({},_0x1cded6,_0x1fc2d6[_0x2186('0x39')]);var _0x23db47={'where':_0x1cded6[_0x2186('0x36')]};return db['CmCompany'][_0x2186('0x19')](_0x23db47)[_0x2186('0x21')](function(_0x451801){_0x30c022[_0x2186('0x19')]=_0x451801;if(_0x1fc2d6[_0x2186('0x2c')][_0x2186('0x3a')]){_0x1cded6['include']=[{'all':!![]}];}return db[_0x2186('0x26')][_0x2186('0x3b')](_0x1cded6);})[_0x2186('0x21')](function(_0x1c7bd1){_0x30c022[_0x2186('0x3c')]=_0x1c7bd1;return _0x30c022;})[_0x2186('0x21')](respondWithFilteredResult(_0x45c328,_0x1cded6))['catch'](handleError(_0x45c328,null));})[_0x2186('0x3d')](handleError(_0x45c328,null));};exports[_0x2186('0x3e')]=function(_0x5b6bf3,_0x3c5c40){var _0x530538={'raw':![],'where':{'id':_0x5b6bf3[_0x2186('0x3f')]['id']}},_0x3dde70={};_0x3dde70[_0x2186('0x28')]=_['keys'](db[_0x2186('0x26')][_0x2186('0x40')]);_0x3dde70[_0x2186('0x2c')]=_[_0x2186('0x29')](_0x5b6bf3[_0x2186('0x2c')]);_0x3dde70['filters']=_[_0x2186('0x2b')](_0x3dde70[_0x2186('0x28')],_0x3dde70[_0x2186('0x2c')]);_0x530538[_0x2186('0x2d')]=_[_0x2186('0x2b')](_0x3dde70['model'],qs[_0x2186('0x2e')](_0x5b6bf3[_0x2186('0x2c')][_0x2186('0x2e')]));_0x530538[_0x2186('0x2d')]=_0x530538['attributes'][_0x2186('0x2f')]?_0x530538[_0x2186('0x2d')]:_0x3dde70[_0x2186('0x28')];if(_0x5b6bf3['query'][_0x2186('0x3a')]){_0x530538[_0x2186('0x41')]=[{'all':!![]}];}_0x530538=_[_0x2186('0x37')]({},_0x530538,_0x5b6bf3['options']);return db[_0x2186('0x26')][_0x2186('0x42')](_0x530538)[_0x2186('0x21')](handleEntityNotFound(_0x3c5c40,null))[_0x2186('0x21')](respondWithResult(_0x3c5c40,null))[_0x2186('0x3d')](handleError(_0x3c5c40,null));};exports[_0x2186('0x43')]=function(_0x230f29,_0xaab787){return db[_0x2186('0x26')][_0x2186('0x43')](_0x230f29[_0x2186('0x44')],{})[_0x2186('0x21')](function(_0x10086f){var _0x2b0c1a=_0x230f29[_0x2186('0x45')][_0x2186('0x20')]({'plain':!![]});if(!_0x2b0c1a)throw new Error(_0x2186('0x46'));if(_0x2b0c1a[_0x2186('0x47')]===_0x2186('0x45')){var _0x12a322=_0x10086f[_0x2186('0x20')]({'plain':!![]});var _0xac8eaf=_0x2186('0x48');return db[_0x2186('0x49')]['find']({'where':{'name':_0xac8eaf,'userProfileId':_0x2b0c1a[_0x2186('0x4a')]},'raw':!![]})[_0x2186('0x21')](function(_0x4595b1){if(_0x4595b1&&_0x4595b1['autoAssociation']===0x0){return db[_0x2186('0x4b')][_0x2186('0x43')]({'name':_0x12a322[_0x2186('0x24')],'resourceId':_0x12a322['id'],'type':_0x4595b1[_0x2186('0x24')],'sectionId':_0x4595b1['id']},{})[_0x2186('0x21')](function(){return _0x10086f;});}else{return _0x10086f;}})[_0x2186('0x3d')](function(_0x4bbc1f){logger['error'](_0x2186('0x4c'),_0x4bbc1f);throw _0x4bbc1f;});}return _0x10086f;})[_0x2186('0x21')](respondWithResult(_0xaab787,0xc9))[_0x2186('0x3d')](handleError(_0xaab787,null));};exports[_0x2186('0x1e')]=function(_0x4a024e,_0x40bae){if(_0x4a024e[_0x2186('0x44')]['id']){delete _0x4a024e[_0x2186('0x44')]['id'];}return db[_0x2186('0x26')][_0x2186('0x42')]({'where':{'id':_0x4a024e[_0x2186('0x3f')]['id']}})[_0x2186('0x21')](handleEntityNotFound(_0x40bae,null))['then'](saveUpdates(_0x4a024e['body'],null))[_0x2186('0x21')](respondWithResult(_0x40bae,null))[_0x2186('0x3d')](handleError(_0x40bae,null));};exports[_0x2186('0x1f')]=function(_0x12d243,_0x353b66){return db['CmCompany'][_0x2186('0x42')]({'where':{'id':_0x12d243[_0x2186('0x3f')]['id']}})[_0x2186('0x21')](handleEntityNotFound(_0x353b66,null))[_0x2186('0x21')](removeEntity(_0x353b66,null))[_0x2186('0x3d')](handleError(_0x353b66,null));};exports[_0x2186('0x27')]=function(_0x41f90e,_0x17f097){return db[_0x2186('0x26')][_0x2186('0x27')]()[_0x2186('0x21')](respondWithResult(_0x17f097,null))['catch'](handleError(_0x17f097,null));};exports[_0x2186('0x4d')]=function(_0x823518,_0x47bb7a,_0x351107){return db[_0x2186('0x4e')][_0x2186('0x42')]({'where':{'id':_0x823518['params']['id']}})[_0x2186('0x21')](handleEntityNotFound(_0x47bb7a,null))[_0x2186('0x21')](function(_0x3f5447){if(_0x3f5447){return _0x3f5447['addContacts'](_0x823518[_0x2186('0x44')][_0x2186('0x4f')],_[_0x2186('0x50')](_0x823518[_0x2186('0x44')],[_0x2186('0x4f'),'id'])||{});}})['then'](respondWithResult(_0x47bb7a,null))['catch'](handleError(_0x47bb7a,null));};exports[_0x2186('0x51')]=function(_0x20b290,_0x29f162,_0x7043fb){var _0x5ac8b7={};var _0xb11070={};var _0x2999e2;var _0x141ef7;return db['CmCompany'][_0x2186('0x52')]({'where':{'id':_0x20b290[_0x2186('0x3f')]['id']}})[_0x2186('0x21')](handleEntityNotFound(_0x29f162,null))[_0x2186('0x21')](function(_0x19fcab){if(_0x19fcab){_0x2999e2=_0x19fcab;_0xb11070[_0x2186('0x28')]=_[_0x2186('0x29')](db['CmContact'][_0x2186('0x40')]);_0xb11070['query']=_[_0x2186('0x29')](_0x20b290['query']);_0xb11070[_0x2186('0x2a')]=_['intersection'](_0xb11070[_0x2186('0x28')],_0xb11070['query']);_0x5ac8b7[_0x2186('0x2d')]=_[_0x2186('0x2b')](_0xb11070['model'],qs[_0x2186('0x2e')](_0x20b290['query'][_0x2186('0x2e')]));_0x5ac8b7[_0x2186('0x2d')]=_0x5ac8b7[_0x2186('0x2d')]['length']?_0x5ac8b7[_0x2186('0x2d')]:_0xb11070['model'];_0x5ac8b7[_0x2186('0x32')]=qs['sort'](_0x20b290['query'][_0x2186('0x33')]);_0x5ac8b7[_0x2186('0x36')]=qs['filters'](_[_0x2186('0x34')](_0x20b290[_0x2186('0x2c')],_0xb11070[_0x2186('0x2a')]));if(_0x20b290[_0x2186('0x2c')][_0x2186('0x35')]){_0x5ac8b7[_0x2186('0x36')]=_[_0x2186('0x37')](_0x5ac8b7[_0x2186('0x36')],{'$or':_[_0x2186('0x38')](_0x5ac8b7[_0x2186('0x2d')],function(_0x239ee4){var _0x4b9192={};_0x4b9192[_0x239ee4]={'$like':'%'+_0x20b290[_0x2186('0x2c')][_0x2186('0x35')]+'%'};return _0x4b9192;})});}_0x5ac8b7=_[_0x2186('0x37')]({},_0x5ac8b7,_0x20b290['options']);return _0x2999e2['getContacts'](_0x5ac8b7);}})['then'](function(_0x5be647){if(_0x5be647){_0x141ef7=_0x5be647[_0x2186('0x2f')];if(!_0x20b290[_0x2186('0x2c')][_0x2186('0x53')](_0x2186('0x30'))){_0x5ac8b7['limit']=qs[_0x2186('0x1a')](_0x20b290['query'][_0x2186('0x1a')]);_0x5ac8b7['offset']=qs['offset'](_0x20b290[_0x2186('0x2c')][_0x2186('0x31')]);}return _0x2999e2[_0x2186('0x51')](_0x5ac8b7);}})[_0x2186('0x21')](function(_0x57e30e){if(_0x57e30e){return _0x57e30e?{'count':_0x141ef7,'rows':_0x57e30e}:null;}})[_0x2186('0x21')](respondWithResult(_0x29f162,null))['catch'](handleError(_0x29f162,null));};