c81d1e21639c88952278d79848b3cd3693d0947a
[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 _0xf53d=['ids','getContacts','findOne','rawAttributes','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','Companies','UserProfileResource','error','name','CmCompany','keys','query','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','offset','sort','where','pick','merge','map','filter','options','includeAll','include','findAll','catch','show','params','filters','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','describe','addContacts','CmContact','omit'];(function(_0x331a6e,_0xa6122b){var _0x5116c6=function(_0x35e8d7){while(--_0x35e8d7){_0x331a6e['push'](_0x331a6e['shift']());}};_0x5116c6(++_0xa6122b);}(_0xf53d,0xac));var _0xdf53=function(_0xafac2b,_0xce00a6){_0xafac2b=_0xafac2b-0x0;var _0x1a0278=_0xf53d[_0xafac2b];return _0x1a0278;};'use strict';var emlformat=require(_0xdf53('0x0'));var rimraf=require(_0xdf53('0x1'));var zipdir=require(_0xdf53('0x2'));var jsonpatch=require(_0xdf53('0x3'));var rp=require('request-promise');var moment=require(_0xdf53('0x4'));var BPromise=require(_0xdf53('0x5'));var Mustache=require('mustache');var util=require(_0xdf53('0x6'));var path=require(_0xdf53('0x7'));var sox=require(_0xdf53('0x8'));var csv=require(_0xdf53('0x9'));var ejs=require(_0xdf53('0xa'));var fs=require('fs');var fs_extra=require(_0xdf53('0xb'));var _=require(_0xdf53('0xc'));var squel=require(_0xdf53('0xd'));var crypto=require(_0xdf53('0xe'));var jsforce=require(_0xdf53('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xdf53('0x9'));var querystring=require(_0xdf53('0x10'));var Papa=require(_0xdf53('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xdf53('0x12'));var hardwareService=require(_0xdf53('0x13'));var logger=require(_0xdf53('0x14'))('api');var utils=require('../../config/utils');var config=require(_0xdf53('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xdf53('0x16'))['db'];function respondWithStatusCode(_0x3a1369,_0x49789e){_0x49789e=_0x49789e||0xcc;return function(_0x359ac9){if(_0x359ac9){return _0x3a1369[_0xdf53('0x17')](_0x49789e);}return _0x3a1369['status'](_0x49789e)[_0xdf53('0x18')]();};}function respondWithResult(_0x4f762a,_0x14b0f1){_0x14b0f1=_0x14b0f1||0xc8;return function(_0x483445){if(_0x483445){return _0x4f762a[_0xdf53('0x19')](_0x14b0f1)[_0xdf53('0x1a')](_0x483445);}};}function respondWithFilteredResult(_0x55e89f,_0x138760){return function(_0x882063){if(_0x882063){var _0x33e5c6=typeof _0x138760['offset']===_0xdf53('0x1b')&&typeof _0x138760[_0xdf53('0x1c')]===_0xdf53('0x1b');var _0x5bc5e1=_0x882063[_0xdf53('0x1d')];var _0x4d5a67=_0x33e5c6?0x0:_0x138760['offset'];var _0x4628d4=_0x33e5c6?_0x882063[_0xdf53('0x1d')]:_0x138760['offset']+_0x138760['limit'];var _0x2ac754;if(_0x4628d4>=_0x5bc5e1){_0x4628d4=_0x5bc5e1;_0x2ac754=0xc8;}else{_0x2ac754=0xce;}_0x55e89f[_0xdf53('0x19')](_0x2ac754);return _0x55e89f[_0xdf53('0x1e')](_0xdf53('0x1f'),_0x4d5a67+'-'+_0x4628d4+'/'+_0x5bc5e1)[_0xdf53('0x1a')](_0x882063);}return null;};}function patchUpdates(_0x45a449){return function(_0x495567){try{jsonpatch[_0xdf53('0x20')](_0x495567,_0x45a449,!![]);}catch(_0x3067e0){return BPromise[_0xdf53('0x21')](_0x3067e0);}return _0x495567[_0xdf53('0x22')]();};}function saveUpdates(_0x43675c,_0x47a741){return function(_0x386ad7){if(_0x386ad7){return _0x386ad7[_0xdf53('0x23')](_0x43675c)[_0xdf53('0x24')](function(_0x2a6dcb){return _0x2a6dcb;});}return null;};}function removeEntity(_0x38c211,_0x466331){return function(_0x42ef98){if(_0x42ef98){return _0x42ef98[_0xdf53('0x25')]()[_0xdf53('0x24')](function(){var _0x51879a=_0x42ef98[_0xdf53('0x26')]({'plain':!![]});var _0x4ca7bb=_0xdf53('0x27');return db[_0xdf53('0x28')]['destroy']({'where':{'type':_0x4ca7bb,'resourceId':_0x51879a['id']}})[_0xdf53('0x24')](function(){return _0x42ef98;});})[_0xdf53('0x24')](function(){_0x38c211[_0xdf53('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x336bec,_0x469e3a){return function(_0x3127c){if(!_0x3127c){_0x336bec[_0xdf53('0x17')](0x194);}return _0x3127c;};}function handleError(_0xaa93d,_0x9b8561){_0x9b8561=_0x9b8561||0x1f4;return function(_0x545ead){logger[_0xdf53('0x29')](_0x545ead['stack']);if(_0x545ead[_0xdf53('0x2a')]){delete _0x545ead[_0xdf53('0x2a')];}_0xaa93d[_0xdf53('0x19')](_0x9b8561)['send'](_0x545ead);};}exports['index']=function(_0x44cd78,_0x261555){var _0x29e032={},_0x148abf={},_0x343668={'count':0x0,'rows':[]};return db[_0xdf53('0x2b')]['describe']()[_0xdf53('0x24')](function(_0x25841c){_0x148abf['model']=_[_0xdf53('0x2c')](_0x25841c);_0x148abf[_0xdf53('0x2d')]=_[_0xdf53('0x2c')](_0x44cd78[_0xdf53('0x2d')]);_0x148abf['filters']=_[_0xdf53('0x2e')](_0x148abf[_0xdf53('0x2f')],_0x148abf[_0xdf53('0x2d')]);_0x29e032[_0xdf53('0x30')]=_[_0xdf53('0x2e')](_0x148abf[_0xdf53('0x2f')],qs[_0xdf53('0x31')](_0x44cd78[_0xdf53('0x2d')][_0xdf53('0x31')]));_0x29e032['attributes']=_0x29e032[_0xdf53('0x30')][_0xdf53('0x32')]?_0x29e032[_0xdf53('0x30')]:_0x148abf[_0xdf53('0x2f')];if(!_0x44cd78['query'][_0xdf53('0x33')](_0xdf53('0x34'))){_0x29e032[_0xdf53('0x1c')]=qs[_0xdf53('0x1c')](_0x44cd78[_0xdf53('0x2d')]['limit']);_0x29e032['offset']=qs[_0xdf53('0x35')](_0x44cd78[_0xdf53('0x2d')][_0xdf53('0x35')]);}_0x29e032['order']=qs[_0xdf53('0x36')](_0x44cd78[_0xdf53('0x2d')][_0xdf53('0x36')]);_0x29e032[_0xdf53('0x37')]=qs['filters'](_[_0xdf53('0x38')](_0x44cd78[_0xdf53('0x2d')],_0x148abf['filters']),_0x25841c);if(_0x44cd78[_0xdf53('0x2d')]['filter']){_0x29e032[_0xdf53('0x37')]=_[_0xdf53('0x39')](_0x29e032[_0xdf53('0x37')],{'$or':_[_0xdf53('0x3a')](_0x29e032[_0xdf53('0x30')],function(_0x2dad97){var _0x3d9f9b={};_0x3d9f9b[_0x2dad97]={'$like':'%'+_0x44cd78[_0xdf53('0x2d')][_0xdf53('0x3b')]+'%'};return _0x3d9f9b;})});}_0x29e032=_[_0xdf53('0x39')]({},_0x29e032,_0x44cd78[_0xdf53('0x3c')]);var _0x4c7002={'where':_0x29e032[_0xdf53('0x37')]};return db[_0xdf53('0x2b')][_0xdf53('0x1d')](_0x4c7002)[_0xdf53('0x24')](function(_0x52f621){_0x343668['count']=_0x52f621;if(_0x44cd78[_0xdf53('0x2d')][_0xdf53('0x3d')]){_0x29e032[_0xdf53('0x3e')]=[{'all':!![]}];}return db[_0xdf53('0x2b')][_0xdf53('0x3f')](_0x29e032);})['then'](function(_0x48d465){_0x343668['rows']=_0x48d465;return _0x343668;})['then'](respondWithFilteredResult(_0x261555,_0x29e032))[_0xdf53('0x40')](handleError(_0x261555,null));})['catch'](handleError(_0x261555,null));};exports[_0xdf53('0x41')]=function(_0x5b95d7,_0x6206f5){var _0x22c35c={'raw':![],'where':{'id':_0x5b95d7[_0xdf53('0x42')]['id']}},_0x505c43={};_0x505c43['model']=_[_0xdf53('0x2c')](db['CmCompany']['rawAttributes']);_0x505c43[_0xdf53('0x2d')]=_[_0xdf53('0x2c')](_0x5b95d7[_0xdf53('0x2d')]);_0x505c43[_0xdf53('0x43')]=_[_0xdf53('0x2e')](_0x505c43[_0xdf53('0x2f')],_0x505c43['query']);_0x22c35c[_0xdf53('0x30')]=_[_0xdf53('0x2e')](_0x505c43[_0xdf53('0x2f')],qs['fields'](_0x5b95d7[_0xdf53('0x2d')][_0xdf53('0x31')]));_0x22c35c[_0xdf53('0x30')]=_0x22c35c[_0xdf53('0x30')]['length']?_0x22c35c[_0xdf53('0x30')]:_0x505c43[_0xdf53('0x2f')];if(_0x5b95d7[_0xdf53('0x2d')][_0xdf53('0x3d')]){_0x22c35c[_0xdf53('0x3e')]=[{'all':!![]}];}_0x22c35c=_[_0xdf53('0x39')]({},_0x22c35c,_0x5b95d7[_0xdf53('0x3c')]);return db['CmCompany']['find'](_0x22c35c)[_0xdf53('0x24')](handleEntityNotFound(_0x6206f5,null))[_0xdf53('0x24')](respondWithResult(_0x6206f5,null))[_0xdf53('0x40')](handleError(_0x6206f5,null));};exports[_0xdf53('0x44')]=function(_0x43a7b8,_0x3b37a3){return db['CmCompany'][_0xdf53('0x44')](_0x43a7b8[_0xdf53('0x45')],{})[_0xdf53('0x24')](function(_0x195edf){var _0x28d55e=_0x43a7b8[_0xdf53('0x46')][_0xdf53('0x26')]({'plain':!![]});if(!_0x28d55e)throw new Error(_0xdf53('0x47'));if(_0x28d55e[_0xdf53('0x48')]===_0xdf53('0x46')){var _0xf80383=_0x195edf['get']({'plain':!![]});var _0x4eb14e=_0xdf53('0x27');return db['UserProfileSection']['find']({'where':{'name':_0x4eb14e,'userProfileId':_0x28d55e['userProfileId']},'raw':!![]})['then'](function(_0xb2ddc0){if(_0xb2ddc0&&_0xb2ddc0[_0xdf53('0x49')]===0x0){return db[_0xdf53('0x28')]['create']({'name':_0xf80383[_0xdf53('0x2a')],'resourceId':_0xf80383['id'],'type':_0xb2ddc0[_0xdf53('0x2a')],'sectionId':_0xb2ddc0['id']},{})['then'](function(){return _0x195edf;});}else{return _0x195edf;}})[_0xdf53('0x40')](function(_0x57bec7){logger[_0xdf53('0x29')](_0xdf53('0x4a'),_0x57bec7);throw _0x57bec7;});}return _0x195edf;})[_0xdf53('0x24')](respondWithResult(_0x3b37a3,0xc9))[_0xdf53('0x40')](handleError(_0x3b37a3,null));};exports[_0xdf53('0x23')]=function(_0x403c38,_0x134e30){if(_0x403c38[_0xdf53('0x45')]['id']){delete _0x403c38[_0xdf53('0x45')]['id'];}return db[_0xdf53('0x2b')][_0xdf53('0x4b')]({'where':{'id':_0x403c38['params']['id']}})[_0xdf53('0x24')](handleEntityNotFound(_0x134e30,null))[_0xdf53('0x24')](saveUpdates(_0x403c38['body'],null))[_0xdf53('0x24')](respondWithResult(_0x134e30,null))[_0xdf53('0x40')](handleError(_0x134e30,null));};exports[_0xdf53('0x25')]=function(_0x461d7c,_0x3536fa){return db[_0xdf53('0x2b')][_0xdf53('0x4b')]({'where':{'id':_0x461d7c[_0xdf53('0x42')]['id']}})[_0xdf53('0x24')](handleEntityNotFound(_0x3536fa,null))['then'](removeEntity(_0x3536fa,null))[_0xdf53('0x40')](handleError(_0x3536fa,null));};exports[_0xdf53('0x4c')]=function(_0x44de3b,_0x2e2dae){return db[_0xdf53('0x2b')]['describe']()[_0xdf53('0x24')](respondWithResult(_0x2e2dae,null))[_0xdf53('0x40')](handleError(_0x2e2dae,null));};exports[_0xdf53('0x4d')]=function(_0x249bb8,_0x2021f3,_0x31d5c2){return db[_0xdf53('0x4e')][_0xdf53('0x4b')]({'where':{'id':_0x249bb8[_0xdf53('0x42')]['id']}})['then'](handleEntityNotFound(_0x2021f3,null))['then'](function(_0x2eb1d3){if(_0x2eb1d3){return _0x2eb1d3[_0xdf53('0x4d')](_0x249bb8['body']['ids'],_[_0xdf53('0x4f')](_0x249bb8[_0xdf53('0x45')],[_0xdf53('0x50'),'id'])||{});}})['then'](respondWithResult(_0x2021f3,null))[_0xdf53('0x40')](handleError(_0x2021f3,null));};exports[_0xdf53('0x51')]=function(_0x1a36cc,_0x29443c,_0x5628ea){var _0x2945fb={};var _0x3101b9={};var _0x1353f8;var _0x6fd5e2;return db[_0xdf53('0x2b')][_0xdf53('0x52')]({'where':{'id':_0x1a36cc[_0xdf53('0x42')]['id']}})[_0xdf53('0x24')](handleEntityNotFound(_0x29443c,null))['then'](function(_0x4ca06f){if(_0x4ca06f){_0x1353f8=_0x4ca06f;_0x3101b9[_0xdf53('0x2f')]=_['keys'](db[_0xdf53('0x4e')][_0xdf53('0x53')]);_0x3101b9[_0xdf53('0x2d')]=_['keys'](_0x1a36cc[_0xdf53('0x2d')]);_0x3101b9[_0xdf53('0x43')]=_[_0xdf53('0x2e')](_0x3101b9[_0xdf53('0x2f')],_0x3101b9[_0xdf53('0x2d')]);_0x2945fb['attributes']=_[_0xdf53('0x2e')](_0x3101b9[_0xdf53('0x2f')],qs[_0xdf53('0x31')](_0x1a36cc[_0xdf53('0x2d')]['fields']));_0x2945fb[_0xdf53('0x30')]=_0x2945fb[_0xdf53('0x30')][_0xdf53('0x32')]?_0x2945fb[_0xdf53('0x30')]:_0x3101b9[_0xdf53('0x2f')];_0x2945fb['order']=qs['sort'](_0x1a36cc[_0xdf53('0x2d')][_0xdf53('0x36')]);_0x2945fb[_0xdf53('0x37')]=qs['filters'](_['pick'](_0x1a36cc[_0xdf53('0x2d')],_0x3101b9['filters']));if(_0x1a36cc[_0xdf53('0x2d')][_0xdf53('0x3b')]){_0x2945fb['where']=_[_0xdf53('0x39')](_0x2945fb[_0xdf53('0x37')],{'$or':_[_0xdf53('0x3a')](_0x2945fb[_0xdf53('0x30')],function(_0x3bac6e){var _0x116cbc={};_0x116cbc[_0x3bac6e]={'$like':'%'+_0x1a36cc[_0xdf53('0x2d')][_0xdf53('0x3b')]+'%'};return _0x116cbc;})});}_0x2945fb=_['merge']({},_0x2945fb,_0x1a36cc[_0xdf53('0x3c')]);return _0x1353f8['getContacts'](_0x2945fb);}})['then'](function(_0x5d299e){if(_0x5d299e){_0x6fd5e2=_0x5d299e[_0xdf53('0x32')];if(!_0x1a36cc[_0xdf53('0x2d')][_0xdf53('0x33')](_0xdf53('0x34'))){_0x2945fb['limit']=qs[_0xdf53('0x1c')](_0x1a36cc[_0xdf53('0x2d')][_0xdf53('0x1c')]);_0x2945fb[_0xdf53('0x35')]=qs[_0xdf53('0x35')](_0x1a36cc[_0xdf53('0x2d')][_0xdf53('0x35')]);}return _0x1353f8['getContacts'](_0x2945fb);}})[_0xdf53('0x24')](function(_0x579589){if(_0x579589){return _0x579589?{'count':_0x6fd5e2,'rows':_0x579589}:null;}})['then'](respondWithResult(_0x29443c,null))['catch'](handleError(_0x29443c,null));};