447bd836e57224d51a8c84abc13e86bf3779a840
[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 _0xc569=['userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addContacts','ids','omit','getContacts','findOne','CmContact','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','count','offset','limit','set','Content-Range','json','reject','save','update','then','destroy','get','Companies','UserProfileResource','error','stack','name','index','describe','model','keys','query','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','map','filter','options','CmCompany','includeAll','include','findAll','rows','catch','show','params','rawAttributes','length','find','create','role','user'];(function(_0x57ca30,_0x3b0089){var _0x279df2=function(_0x223ff3){while(--_0x223ff3){_0x57ca30['push'](_0x57ca30['shift']());}};_0x279df2(++_0x3b0089);}(_0xc569,0x159));var _0x9c56=function(_0x590a84,_0x33e2fa){_0x590a84=_0x590a84-0x0;var _0x57e939=_0xc569[_0x590a84];return _0x57e939;};'use strict';var pdf=require(_0x9c56('0x0'));var emlformat=require(_0x9c56('0x1'));var rimraf=require(_0x9c56('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9c56('0x3'));var rp=require(_0x9c56('0x4'));var moment=require('moment');var BPromise=require(_0x9c56('0x5'));var Mustache=require(_0x9c56('0x6'));var util=require(_0x9c56('0x7'));var path=require('path');var sox=require(_0x9c56('0x8'));var csv=require(_0x9c56('0x9'));var ejs=require(_0x9c56('0xa'));var fs=require('fs');var _=require(_0x9c56('0xb'));var squel=require('squel');var crypto=require(_0x9c56('0xc'));var jsforce=require(_0x9c56('0xd'));var deskjs=require(_0x9c56('0xe'));var toCsv=require(_0x9c56('0x9'));var querystring=require(_0x9c56('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x9c56('0x10'));var as=require(_0x9c56('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9c56('0x12'))('api');var utils=require(_0x9c56('0x13'));var config=require(_0x9c56('0x14'));var db=require(_0x9c56('0x15'))['db'];function respondWithStatusCode(_0x45cdf3,_0x43b2a9){_0x43b2a9=_0x43b2a9||0xcc;return function(_0x137123){if(_0x137123){return _0x45cdf3[_0x9c56('0x16')](_0x43b2a9);}return _0x45cdf3['status'](_0x43b2a9)[_0x9c56('0x17')]();};}function respondWithResult(_0x5088d3,_0x44c0bd){_0x44c0bd=_0x44c0bd||0xc8;return function(_0xbeb12d){if(_0xbeb12d){return _0x5088d3[_0x9c56('0x18')](_0x44c0bd)['json'](_0xbeb12d);}};}function respondWithFilteredResult(_0x6605e3,_0x5217c3){return function(_0x37d40a){if(_0x37d40a){var _0x1f16ce=_0x37d40a[_0x9c56('0x19')],_0x14ace0=_0x5217c3[_0x9c56('0x1a')],_0x2ca2d2=_0x5217c3[_0x9c56('0x1a')]+_0x5217c3[_0x9c56('0x1b')],_0x131f30;if(_0x2ca2d2>=_0x1f16ce){_0x2ca2d2=_0x1f16ce;_0x131f30=0xc8;}else{_0x131f30=0xce;}_0x6605e3[_0x9c56('0x18')](_0x131f30);return _0x6605e3[_0x9c56('0x1c')](_0x9c56('0x1d'),_0x14ace0+'-'+_0x2ca2d2+'/'+_0x1f16ce)[_0x9c56('0x1e')](_0x37d40a);}return null;};}function patchUpdates(_0x8ef95e){return function(_0x2ac778){try{jsonpatch['apply'](_0x2ac778,_0x8ef95e,!![]);}catch(_0x22bd7f){return BPromise[_0x9c56('0x1f')](_0x22bd7f);}return _0x2ac778[_0x9c56('0x20')]();};}function saveUpdates(_0x56bf0a,_0xf074f9){return function(_0x1f55b6){if(_0x1f55b6){return _0x1f55b6[_0x9c56('0x21')](_0x56bf0a)[_0x9c56('0x22')](function(_0x25602b){return _0x25602b;});}return null;};}function removeEntity(_0x1a985e,_0x27066c){return function(_0xf4e706){if(_0xf4e706){return _0xf4e706[_0x9c56('0x23')]()['then'](function(){var _0x114a62=_0xf4e706[_0x9c56('0x24')]({'plain':!![]});var _0x573983=_0x9c56('0x25');return db[_0x9c56('0x26')][_0x9c56('0x23')]({'where':{'type':_0x573983,'resourceId':_0x114a62['id']}})[_0x9c56('0x22')](function(){return _0xf4e706;});})[_0x9c56('0x22')](function(){_0x1a985e['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xf55d6c,_0x1e03ff){return function(_0x5c9b5f){if(!_0x5c9b5f){_0xf55d6c[_0x9c56('0x16')](0x194);}return _0x5c9b5f;};}function handleError(_0x5e3d83,_0x4e53d8){_0x4e53d8=_0x4e53d8||0x1f4;return function(_0x1a0d08){logger[_0x9c56('0x27')](_0x1a0d08[_0x9c56('0x28')]);if(_0x1a0d08[_0x9c56('0x29')]){delete _0x1a0d08[_0x9c56('0x29')];}_0x5e3d83[_0x9c56('0x18')](_0x4e53d8)['send'](_0x1a0d08);};}exports[_0x9c56('0x2a')]=function(_0x21de8e,_0x59529f){var _0x4f88fa={},_0x47c7be={},_0x708c75={'count':0x0,'rows':[]};return db['CmCompany'][_0x9c56('0x2b')]()[_0x9c56('0x22')](function(_0x7bcf70){_0x47c7be[_0x9c56('0x2c')]=_[_0x9c56('0x2d')](_0x7bcf70);_0x47c7be[_0x9c56('0x2e')]=_['keys'](_0x21de8e[_0x9c56('0x2e')]);_0x47c7be['filters']=_['intersection'](_0x47c7be[_0x9c56('0x2c')],_0x47c7be[_0x9c56('0x2e')]);_0x4f88fa[_0x9c56('0x2f')]=_[_0x9c56('0x30')](_0x47c7be[_0x9c56('0x2c')],qs[_0x9c56('0x31')](_0x21de8e[_0x9c56('0x2e')][_0x9c56('0x31')]));_0x4f88fa[_0x9c56('0x2f')]=_0x4f88fa[_0x9c56('0x2f')]['length']?_0x4f88fa[_0x9c56('0x2f')]:_0x47c7be[_0x9c56('0x2c')];if(!_0x21de8e['query'][_0x9c56('0x32')](_0x9c56('0x33'))){_0x4f88fa[_0x9c56('0x1b')]=qs[_0x9c56('0x1b')](_0x21de8e[_0x9c56('0x2e')]['limit']);_0x4f88fa[_0x9c56('0x1a')]=qs[_0x9c56('0x1a')](_0x21de8e['query']['offset']);}_0x4f88fa[_0x9c56('0x34')]=qs[_0x9c56('0x35')](_0x21de8e[_0x9c56('0x2e')]['sort']);_0x4f88fa[_0x9c56('0x36')]=qs[_0x9c56('0x37')](_[_0x9c56('0x38')](_0x21de8e[_0x9c56('0x2e')],_0x47c7be['filters']));if(_0x21de8e[_0x9c56('0x2e')]['filter']){_0x4f88fa['where']=_[_0x9c56('0x39')](_0x4f88fa[_0x9c56('0x36')],{'$or':_[_0x9c56('0x3a')](_0x4f88fa[_0x9c56('0x2f')],function(_0x76b71b){var _0x2dd72a={};_0x2dd72a[_0x76b71b]={'$like':'%'+_0x21de8e[_0x9c56('0x2e')][_0x9c56('0x3b')]+'%'};return _0x2dd72a;})});}_0x4f88fa=_[_0x9c56('0x39')]({},_0x4f88fa,_0x21de8e[_0x9c56('0x3c')]);var _0x542805={'where':_0x4f88fa['where']};return db[_0x9c56('0x3d')][_0x9c56('0x19')](_0x542805)['then'](function(_0x212227){_0x708c75[_0x9c56('0x19')]=_0x212227;if(_0x21de8e[_0x9c56('0x2e')][_0x9c56('0x3e')]){_0x4f88fa[_0x9c56('0x3f')]=[{'all':!![]}];}return db[_0x9c56('0x3d')][_0x9c56('0x40')](_0x4f88fa);})[_0x9c56('0x22')](function(_0x2d7603){_0x708c75[_0x9c56('0x41')]=_0x2d7603;return _0x708c75;})[_0x9c56('0x22')](respondWithFilteredResult(_0x59529f,_0x4f88fa))[_0x9c56('0x42')](handleError(_0x59529f,null));})[_0x9c56('0x42')](handleError(_0x59529f,null));};exports[_0x9c56('0x43')]=function(_0x10c659,_0x794f0a){var _0x2ffd8a={'raw':![],'where':{'id':_0x10c659[_0x9c56('0x44')]['id']}},_0x1a17a3={};_0x1a17a3[_0x9c56('0x2c')]=_[_0x9c56('0x2d')](db[_0x9c56('0x3d')][_0x9c56('0x45')]);_0x1a17a3[_0x9c56('0x2e')]=_['keys'](_0x10c659['query']);_0x1a17a3[_0x9c56('0x37')]=_[_0x9c56('0x30')](_0x1a17a3[_0x9c56('0x2c')],_0x1a17a3[_0x9c56('0x2e')]);_0x2ffd8a[_0x9c56('0x2f')]=_[_0x9c56('0x30')](_0x1a17a3[_0x9c56('0x2c')],qs[_0x9c56('0x31')](_0x10c659['query'][_0x9c56('0x31')]));_0x2ffd8a[_0x9c56('0x2f')]=_0x2ffd8a[_0x9c56('0x2f')][_0x9c56('0x46')]?_0x2ffd8a['attributes']:_0x1a17a3['model'];if(_0x10c659[_0x9c56('0x2e')][_0x9c56('0x3e')]){_0x2ffd8a[_0x9c56('0x3f')]=[{'all':!![]}];}_0x2ffd8a=_[_0x9c56('0x39')]({},_0x2ffd8a,_0x10c659[_0x9c56('0x3c')]);return db[_0x9c56('0x3d')][_0x9c56('0x47')](_0x2ffd8a)[_0x9c56('0x22')](handleEntityNotFound(_0x794f0a,null))[_0x9c56('0x22')](respondWithResult(_0x794f0a,null))['catch'](handleError(_0x794f0a,null));};exports[_0x9c56('0x48')]=function(_0xa6d53d,_0x4f78e0){return db[_0x9c56('0x3d')][_0x9c56('0x48')](_0xa6d53d['body'],{})[_0x9c56('0x22')](function(_0x2fbbf6){var _0x489eaa=_0xa6d53d['user']['get']({'plain':!![]});if(!_0x489eaa)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x489eaa[_0x9c56('0x49')]===_0x9c56('0x4a')){var _0x1d01b5=_0x2fbbf6[_0x9c56('0x24')]({'plain':!![]});var _0x5de5a5=_0x9c56('0x25');return db['UserProfileSection']['find']({'where':{'name':_0x5de5a5,'userProfileId':_0x489eaa[_0x9c56('0x4b')]},'raw':!![]})[_0x9c56('0x22')](function(_0x506975){if(_0x506975&&_0x506975['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x1d01b5[_0x9c56('0x29')],'resourceId':_0x1d01b5['id'],'type':_0x506975[_0x9c56('0x29')],'sectionId':_0x506975['id']},{})[_0x9c56('0x22')](function(){return _0x2fbbf6;});}else{return _0x2fbbf6;}})['catch'](function(_0x54e97f){logger[_0x9c56('0x27')](_0x9c56('0x4c'),_0x54e97f);throw _0x54e97f;});}return _0x2fbbf6;})[_0x9c56('0x22')](respondWithResult(_0x4f78e0,0xc9))['catch'](handleError(_0x4f78e0,null));};exports[_0x9c56('0x21')]=function(_0x5750b6,_0x35b067){if(_0x5750b6[_0x9c56('0x4d')]['id']){delete _0x5750b6[_0x9c56('0x4d')]['id'];}return db['CmCompany']['find']({'where':{'id':_0x5750b6[_0x9c56('0x44')]['id']}})[_0x9c56('0x22')](handleEntityNotFound(_0x35b067,null))['then'](saveUpdates(_0x5750b6[_0x9c56('0x4d')],null))[_0x9c56('0x22')](respondWithResult(_0x35b067,null))[_0x9c56('0x42')](handleError(_0x35b067,null));};exports[_0x9c56('0x23')]=function(_0x2a55c7,_0x116a1d){return db['CmCompany'][_0x9c56('0x47')]({'where':{'id':_0x2a55c7[_0x9c56('0x44')]['id']}})[_0x9c56('0x22')](handleEntityNotFound(_0x116a1d,null))[_0x9c56('0x22')](removeEntity(_0x116a1d,null))[_0x9c56('0x42')](handleError(_0x116a1d,null));};exports['describe']=function(_0x3e36db,_0x2c757e){return db['CmCompany'][_0x9c56('0x2b')]()[_0x9c56('0x22')](respondWithResult(_0x2c757e,null))[_0x9c56('0x42')](handleError(_0x2c757e,null));};exports[_0x9c56('0x4e')]=function(_0x35a5f0,_0x5e5a26,_0x14b3c6){return db['CmContact'][_0x9c56('0x47')]({'where':{'id':_0x35a5f0[_0x9c56('0x44')]['id']}})['then'](handleEntityNotFound(_0x5e5a26,null))[_0x9c56('0x22')](function(_0x4e6520){if(_0x4e6520){return _0x4e6520[_0x9c56('0x4e')](_0x35a5f0[_0x9c56('0x4d')][_0x9c56('0x4f')],_[_0x9c56('0x50')](_0x35a5f0[_0x9c56('0x4d')],[_0x9c56('0x4f'),'id'])||{});}})[_0x9c56('0x22')](respondWithResult(_0x5e5a26,null))[_0x9c56('0x42')](handleError(_0x5e5a26,null));};exports[_0x9c56('0x51')]=function(_0x14110d,_0x38ffb6,_0x452bf7){var _0x28f588={};var _0x183622={};var _0x2e85c4;var _0x5e6196;return db[_0x9c56('0x3d')][_0x9c56('0x52')]({'where':{'id':_0x14110d[_0x9c56('0x44')]['id']}})['then'](handleEntityNotFound(_0x38ffb6,null))[_0x9c56('0x22')](function(_0x5f3cc8){if(_0x5f3cc8){_0x2e85c4=_0x5f3cc8;_0x183622[_0x9c56('0x2c')]=_['keys'](db[_0x9c56('0x53')]['rawAttributes']);_0x183622['query']=_['keys'](_0x14110d[_0x9c56('0x2e')]);_0x183622[_0x9c56('0x37')]=_['intersection'](_0x183622[_0x9c56('0x2c')],_0x183622[_0x9c56('0x2e')]);_0x28f588[_0x9c56('0x2f')]=_[_0x9c56('0x30')](_0x183622[_0x9c56('0x2c')],qs[_0x9c56('0x31')](_0x14110d[_0x9c56('0x2e')][_0x9c56('0x31')]));_0x28f588[_0x9c56('0x2f')]=_0x28f588[_0x9c56('0x2f')]['length']?_0x28f588[_0x9c56('0x2f')]:_0x183622[_0x9c56('0x2c')];_0x28f588['order']=qs[_0x9c56('0x35')](_0x14110d[_0x9c56('0x2e')][_0x9c56('0x35')]);_0x28f588['where']=qs[_0x9c56('0x37')](_['pick'](_0x14110d[_0x9c56('0x2e')],_0x183622[_0x9c56('0x37')]));if(_0x14110d[_0x9c56('0x2e')][_0x9c56('0x3b')]){_0x28f588[_0x9c56('0x36')]=_[_0x9c56('0x39')](_0x28f588['where'],{'$or':_[_0x9c56('0x3a')](_0x28f588[_0x9c56('0x2f')],function(_0x414cee){var _0x38ca64={};_0x38ca64[_0x414cee]={'$like':'%'+_0x14110d['query'][_0x9c56('0x3b')]+'%'};return _0x38ca64;})});}_0x28f588=_[_0x9c56('0x39')]({},_0x28f588,_0x14110d[_0x9c56('0x3c')]);return _0x2e85c4[_0x9c56('0x51')](_0x28f588);}})[_0x9c56('0x22')](function(_0x1655d1){if(_0x1655d1){_0x5e6196=_0x1655d1[_0x9c56('0x46')];if(!_0x14110d[_0x9c56('0x2e')][_0x9c56('0x32')](_0x9c56('0x33'))){_0x28f588[_0x9c56('0x1b')]=qs['limit'](_0x14110d[_0x9c56('0x2e')]['limit']);_0x28f588[_0x9c56('0x1a')]=qs[_0x9c56('0x1a')](_0x14110d[_0x9c56('0x2e')][_0x9c56('0x1a')]);}return _0x2e85c4['getContacts'](_0x28f588);}})[_0x9c56('0x22')](function(_0x35735a){if(_0x35735a){return _0x35735a?{'count':_0x5e6196,'rows':_0x35735a}:null;}})[_0x9c56('0x22')](respondWithResult(_0x38ffb6,null))[_0x9c56('0x42')](handleError(_0x38ffb6,null));};