05a2fc05e15b5b6ce4d94300414bba8608272b77
[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 _0x772c=['autoAssociation','error','describe','addContacts','ids','getContacts','findOne','CmContact','order','pick','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','then','get','UserProfileResource','destroy','name','send','CmCompany','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','sort','where','filter','merge','map','options','includeAll','findAll','catch','show','params','rawAttributes','include','find','create','body','user','Companies','UserProfileSection','userProfileId'];(function(_0xdd52b7,_0x4f630f){var _0x1057c2=function(_0x118859){while(--_0x118859){_0xdd52b7['push'](_0xdd52b7['shift']());}};_0x1057c2(++_0x4f630f);}(_0x772c,0x15a));var _0xc772=function(_0x5d2f46,_0xbca366){_0x5d2f46=_0x5d2f46-0x0;var _0x5b13cb=_0x772c[_0x5d2f46];return _0x5b13cb;};'use strict';var emlformat=require(_0xc772('0x0'));var rimraf=require(_0xc772('0x1'));var zipdir=require(_0xc772('0x2'));var jsonpatch=require(_0xc772('0x3'));var rp=require(_0xc772('0x4'));var moment=require(_0xc772('0x5'));var BPromise=require(_0xc772('0x6'));var Mustache=require('mustache');var util=require(_0xc772('0x7'));var path=require(_0xc772('0x8'));var sox=require(_0xc772('0x9'));var csv=require(_0xc772('0xa'));var ejs=require(_0xc772('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc772('0xc'));var squel=require('squel');var crypto=require(_0xc772('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xc772('0xe'));var toCsv=require(_0xc772('0xa'));var querystring=require(_0xc772('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xc772('0x10'));var qs=require(_0xc772('0x11'));var as=require(_0xc772('0x12'));var hardwareService=require(_0xc772('0x13'));var logger=require(_0xc772('0x14'))('api');var utils=require(_0xc772('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xc772('0x16'))['db'];function respondWithStatusCode(_0x23ec7f,_0x49e17e){_0x49e17e=_0x49e17e||0xcc;return function(_0x74850c){if(_0x74850c){return _0x23ec7f[_0xc772('0x17')](_0x49e17e);}return _0x23ec7f[_0xc772('0x18')](_0x49e17e)[_0xc772('0x19')]();};}function respondWithResult(_0x1ed844,_0x4f3869){_0x4f3869=_0x4f3869||0xc8;return function(_0x151dbf){if(_0x151dbf){return _0x1ed844[_0xc772('0x18')](_0x4f3869)[_0xc772('0x1a')](_0x151dbf);}};}function respondWithFilteredResult(_0x81b5cf,_0x45ed4b){return function(_0x13b452){if(_0x13b452){var _0x49db7d=typeof _0x45ed4b[_0xc772('0x1b')]===_0xc772('0x1c')&&typeof _0x45ed4b['limit']===_0xc772('0x1c');var _0x15c67b=_0x13b452[_0xc772('0x1d')];var _0x5717ab=_0x49db7d?0x0:_0x45ed4b['offset'];var _0x502963=_0x49db7d?_0x13b452[_0xc772('0x1d')]:_0x45ed4b['offset']+_0x45ed4b['limit'];var _0x24bd6e;if(_0x502963>=_0x15c67b){_0x502963=_0x15c67b;_0x24bd6e=0xc8;}else{_0x24bd6e=0xce;}_0x81b5cf[_0xc772('0x18')](_0x24bd6e);return _0x81b5cf[_0xc772('0x1e')](_0xc772('0x1f'),_0x5717ab+'-'+_0x502963+'/'+_0x15c67b)[_0xc772('0x1a')](_0x13b452);}return null;};}function patchUpdates(_0x29cbca){return function(_0x135a54){try{jsonpatch[_0xc772('0x20')](_0x135a54,_0x29cbca,!![]);}catch(_0x3a7a5a){return BPromise[_0xc772('0x21')](_0x3a7a5a);}return _0x135a54[_0xc772('0x22')]();};}function saveUpdates(_0x36d529,_0x3bf333){return function(_0x313143){if(_0x313143){return _0x313143[_0xc772('0x23')](_0x36d529)[_0xc772('0x24')](function(_0x3e80a0){return _0x3e80a0;});}return null;};}function removeEntity(_0x5e3ff5,_0x4ae24b){return function(_0x28b38e){if(_0x28b38e){return _0x28b38e['destroy']()['then'](function(){var _0x5a57cb=_0x28b38e[_0xc772('0x25')]({'plain':!![]});var _0x2a520d='Companies';return db[_0xc772('0x26')][_0xc772('0x27')]({'where':{'type':_0x2a520d,'resourceId':_0x5a57cb['id']}})['then'](function(){return _0x28b38e;});})[_0xc772('0x24')](function(){_0x5e3ff5[_0xc772('0x18')](0xcc)[_0xc772('0x19')]();});}};}function handleEntityNotFound(_0x4c913b,_0x5c1895){return function(_0x26b903){if(!_0x26b903){_0x4c913b[_0xc772('0x17')](0x194);}return _0x26b903;};}function handleError(_0x1bc3f9,_0x5cae24){_0x5cae24=_0x5cae24||0x1f4;return function(_0xa0f077){logger['error'](_0xa0f077['stack']);if(_0xa0f077[_0xc772('0x28')]){delete _0xa0f077[_0xc772('0x28')];}_0x1bc3f9[_0xc772('0x18')](_0x5cae24)[_0xc772('0x29')](_0xa0f077);};}exports['index']=function(_0x544d09,_0x5afcfc){var _0x5d0733={},_0x307992={},_0x3d3241={'count':0x0,'rows':[]};return db[_0xc772('0x2a')]['describe']()[_0xc772('0x24')](function(_0x173538){_0x307992[_0xc772('0x2b')]=_['keys'](_0x173538);_0x307992[_0xc772('0x2c')]=_[_0xc772('0x2d')](_0x544d09[_0xc772('0x2c')]);_0x307992[_0xc772('0x2e')]=_[_0xc772('0x2f')](_0x307992[_0xc772('0x2b')],_0x307992[_0xc772('0x2c')]);_0x5d0733['attributes']=_[_0xc772('0x2f')](_0x307992[_0xc772('0x2b')],qs[_0xc772('0x30')](_0x544d09[_0xc772('0x2c')][_0xc772('0x30')]));_0x5d0733[_0xc772('0x31')]=_0x5d0733[_0xc772('0x31')][_0xc772('0x32')]?_0x5d0733[_0xc772('0x31')]:_0x307992[_0xc772('0x2b')];if(!_0x544d09[_0xc772('0x2c')][_0xc772('0x33')](_0xc772('0x34'))){_0x5d0733[_0xc772('0x35')]=qs[_0xc772('0x35')](_0x544d09['query'][_0xc772('0x35')]);_0x5d0733['offset']=qs[_0xc772('0x1b')](_0x544d09[_0xc772('0x2c')]['offset']);}_0x5d0733['order']=qs[_0xc772('0x36')](_0x544d09[_0xc772('0x2c')]['sort']);_0x5d0733[_0xc772('0x37')]=qs['filters'](_['pick'](_0x544d09[_0xc772('0x2c')],_0x307992[_0xc772('0x2e')]),_0x173538);if(_0x544d09[_0xc772('0x2c')][_0xc772('0x38')]){_0x5d0733[_0xc772('0x37')]=_[_0xc772('0x39')](_0x5d0733['where'],{'$or':_[_0xc772('0x3a')](_0x5d0733[_0xc772('0x31')],function(_0xc01ca4){var _0x37e23a={};_0x37e23a[_0xc01ca4]={'$like':'%'+_0x544d09['query'][_0xc772('0x38')]+'%'};return _0x37e23a;})});}_0x5d0733=_[_0xc772('0x39')]({},_0x5d0733,_0x544d09[_0xc772('0x3b')]);var _0x20a3f5={'where':_0x5d0733['where']};return db[_0xc772('0x2a')][_0xc772('0x1d')](_0x20a3f5)['then'](function(_0x3d780a){_0x3d3241[_0xc772('0x1d')]=_0x3d780a;if(_0x544d09[_0xc772('0x2c')][_0xc772('0x3c')]){_0x5d0733['include']=[{'all':!![]}];}return db['CmCompany'][_0xc772('0x3d')](_0x5d0733);})[_0xc772('0x24')](function(_0x5e077a){_0x3d3241['rows']=_0x5e077a;return _0x3d3241;})[_0xc772('0x24')](respondWithFilteredResult(_0x5afcfc,_0x5d0733))[_0xc772('0x3e')](handleError(_0x5afcfc,null));})[_0xc772('0x3e')](handleError(_0x5afcfc,null));};exports[_0xc772('0x3f')]=function(_0x286718,_0x114a85){var _0x1b0ad1={'raw':![],'where':{'id':_0x286718[_0xc772('0x40')]['id']}},_0x5bbfed={};_0x5bbfed[_0xc772('0x2b')]=_[_0xc772('0x2d')](db[_0xc772('0x2a')][_0xc772('0x41')]);_0x5bbfed[_0xc772('0x2c')]=_[_0xc772('0x2d')](_0x286718[_0xc772('0x2c')]);_0x5bbfed[_0xc772('0x2e')]=_[_0xc772('0x2f')](_0x5bbfed[_0xc772('0x2b')],_0x5bbfed[_0xc772('0x2c')]);_0x1b0ad1[_0xc772('0x31')]=_[_0xc772('0x2f')](_0x5bbfed[_0xc772('0x2b')],qs[_0xc772('0x30')](_0x286718[_0xc772('0x2c')][_0xc772('0x30')]));_0x1b0ad1['attributes']=_0x1b0ad1[_0xc772('0x31')]['length']?_0x1b0ad1[_0xc772('0x31')]:_0x5bbfed['model'];if(_0x286718[_0xc772('0x2c')][_0xc772('0x3c')]){_0x1b0ad1[_0xc772('0x42')]=[{'all':!![]}];}_0x1b0ad1=_[_0xc772('0x39')]({},_0x1b0ad1,_0x286718['options']);return db[_0xc772('0x2a')][_0xc772('0x43')](_0x1b0ad1)['then'](handleEntityNotFound(_0x114a85,null))[_0xc772('0x24')](respondWithResult(_0x114a85,null))[_0xc772('0x3e')](handleError(_0x114a85,null));};exports['create']=function(_0x129134,_0x3c0151){return db[_0xc772('0x2a')][_0xc772('0x44')](_0x129134[_0xc772('0x45')],{})[_0xc772('0x24')](function(_0x387a09){var _0x4496fc=_0x129134[_0xc772('0x46')][_0xc772('0x25')]({'plain':!![]});if(!_0x4496fc)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4496fc['role']==='user'){var _0x1c93e1=_0x387a09[_0xc772('0x25')]({'plain':!![]});var _0x558d07=_0xc772('0x47');return db[_0xc772('0x48')]['find']({'where':{'name':_0x558d07,'userProfileId':_0x4496fc[_0xc772('0x49')]},'raw':!![]})[_0xc772('0x24')](function(_0x17fdcd){if(_0x17fdcd&&_0x17fdcd[_0xc772('0x4a')]===0x0){return db[_0xc772('0x26')]['create']({'name':_0x1c93e1['name'],'resourceId':_0x1c93e1['id'],'type':_0x17fdcd['name'],'sectionId':_0x17fdcd['id']},{})[_0xc772('0x24')](function(){return _0x387a09;});}else{return _0x387a09;}})[_0xc772('0x3e')](function(_0x597a07){logger[_0xc772('0x4b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x597a07);throw _0x597a07;});}return _0x387a09;})[_0xc772('0x24')](respondWithResult(_0x3c0151,0xc9))[_0xc772('0x3e')](handleError(_0x3c0151,null));};exports[_0xc772('0x23')]=function(_0x215298,_0x45dc4c){if(_0x215298[_0xc772('0x45')]['id']){delete _0x215298[_0xc772('0x45')]['id'];}return db[_0xc772('0x2a')][_0xc772('0x43')]({'where':{'id':_0x215298[_0xc772('0x40')]['id']}})[_0xc772('0x24')](handleEntityNotFound(_0x45dc4c,null))['then'](saveUpdates(_0x215298[_0xc772('0x45')],null))['then'](respondWithResult(_0x45dc4c,null))['catch'](handleError(_0x45dc4c,null));};exports['destroy']=function(_0x58b9f1,_0x1b5999){return db[_0xc772('0x2a')][_0xc772('0x43')]({'where':{'id':_0x58b9f1[_0xc772('0x40')]['id']}})[_0xc772('0x24')](handleEntityNotFound(_0x1b5999,null))['then'](removeEntity(_0x1b5999,null))['catch'](handleError(_0x1b5999,null));};exports[_0xc772('0x4c')]=function(_0x4e260f,_0x2798fd){return db[_0xc772('0x2a')][_0xc772('0x4c')]()[_0xc772('0x24')](respondWithResult(_0x2798fd,null))[_0xc772('0x3e')](handleError(_0x2798fd,null));};exports[_0xc772('0x4d')]=function(_0x3b1389,_0x347797,_0xd2909a){return db['CmContact']['find']({'where':{'id':_0x3b1389[_0xc772('0x40')]['id']}})[_0xc772('0x24')](handleEntityNotFound(_0x347797,null))[_0xc772('0x24')](function(_0x35f92e){if(_0x35f92e){return _0x35f92e[_0xc772('0x4d')](_0x3b1389[_0xc772('0x45')][_0xc772('0x4e')],_['omit'](_0x3b1389['body'],[_0xc772('0x4e'),'id'])||{});}})['then'](respondWithResult(_0x347797,null))['catch'](handleError(_0x347797,null));};exports[_0xc772('0x4f')]=function(_0x1f5a49,_0x4a6bd6,_0x1c6eba){var _0x21b0a9={};var _0x4b86c1={};var _0x3ef0de;var _0x58cf48;return db['CmCompany'][_0xc772('0x50')]({'where':{'id':_0x1f5a49[_0xc772('0x40')]['id']}})[_0xc772('0x24')](handleEntityNotFound(_0x4a6bd6,null))[_0xc772('0x24')](function(_0xc3cdab){if(_0xc3cdab){_0x3ef0de=_0xc3cdab;_0x4b86c1['model']=_[_0xc772('0x2d')](db[_0xc772('0x51')][_0xc772('0x41')]);_0x4b86c1['query']=_[_0xc772('0x2d')](_0x1f5a49['query']);_0x4b86c1[_0xc772('0x2e')]=_[_0xc772('0x2f')](_0x4b86c1[_0xc772('0x2b')],_0x4b86c1[_0xc772('0x2c')]);_0x21b0a9[_0xc772('0x31')]=_[_0xc772('0x2f')](_0x4b86c1['model'],qs[_0xc772('0x30')](_0x1f5a49[_0xc772('0x2c')]['fields']));_0x21b0a9[_0xc772('0x31')]=_0x21b0a9[_0xc772('0x31')]['length']?_0x21b0a9[_0xc772('0x31')]:_0x4b86c1[_0xc772('0x2b')];_0x21b0a9[_0xc772('0x52')]=qs[_0xc772('0x36')](_0x1f5a49['query'][_0xc772('0x36')]);_0x21b0a9['where']=qs[_0xc772('0x2e')](_[_0xc772('0x53')](_0x1f5a49[_0xc772('0x2c')],_0x4b86c1[_0xc772('0x2e')]));if(_0x1f5a49['query'][_0xc772('0x38')]){_0x21b0a9['where']=_[_0xc772('0x39')](_0x21b0a9[_0xc772('0x37')],{'$or':_[_0xc772('0x3a')](_0x21b0a9[_0xc772('0x31')],function(_0x4caa09){var _0x529750={};_0x529750[_0x4caa09]={'$like':'%'+_0x1f5a49[_0xc772('0x2c')]['filter']+'%'};return _0x529750;})});}_0x21b0a9=_['merge']({},_0x21b0a9,_0x1f5a49['options']);return _0x3ef0de[_0xc772('0x4f')](_0x21b0a9);}})[_0xc772('0x24')](function(_0x4a058f){if(_0x4a058f){_0x58cf48=_0x4a058f[_0xc772('0x32')];if(!_0x1f5a49[_0xc772('0x2c')][_0xc772('0x33')](_0xc772('0x34'))){_0x21b0a9[_0xc772('0x35')]=qs[_0xc772('0x35')](_0x1f5a49[_0xc772('0x2c')][_0xc772('0x35')]);_0x21b0a9[_0xc772('0x1b')]=qs[_0xc772('0x1b')](_0x1f5a49[_0xc772('0x2c')][_0xc772('0x1b')]);}return _0x3ef0de[_0xc772('0x4f')](_0x21b0a9);}})[_0xc772('0x24')](function(_0x4ed249){if(_0x4ed249){return _0x4ed249?{'count':_0x58cf48,'rows':_0x4ed249}:null;}})[_0xc772('0x24')](respondWithResult(_0x4a6bd6,null))['catch'](handleError(_0x4a6bd6,null));};