23241600411ff17214c7ed73fff3bce2a3c64fb8
[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 _0x5736=['filters','intersection','model','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','length','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','update','describe','addContacts','CmContact','ids','omit','getContacts','fields','map','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','save','then','destroy','Companies','UserProfileResource','end','error','name','send','render','merge','contact','interaction','account','index','CmCompany','query','keys'];(function(_0x1ad584,_0x42c84d){var _0x4af40f=function(_0x462f0a){while(--_0x462f0a){_0x1ad584['push'](_0x1ad584['shift']());}};_0x4af40f(++_0x42c84d);}(_0x5736,0x13c));var _0x6573=function(_0x393083,_0x42154f){_0x393083=_0x393083-0x0;var _0x5f2fc6=_0x5736[_0x393083];return _0x5f2fc6;};'use strict';var emlformat=require(_0x6573('0x0'));var rimraf=require(_0x6573('0x1'));var zipdir=require(_0x6573('0x2'));var jsonpatch=require(_0x6573('0x3'));var rp=require(_0x6573('0x4'));var moment=require(_0x6573('0x5'));var BPromise=require(_0x6573('0x6'));var Mustache=require(_0x6573('0x7'));var util=require(_0x6573('0x8'));var path=require(_0x6573('0x9'));var sox=require('sox');var csv=require(_0x6573('0xa'));var ejs=require(_0x6573('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x6573('0xc'));var crypto=require('crypto');var jsforce=require(_0x6573('0xd'));var deskjs=require(_0x6573('0xe'));var toCsv=require(_0x6573('0xa'));var querystring=require(_0x6573('0xf'));var Papa=require(_0x6573('0x10'));var Redis=require('ioredis');var authService=require(_0x6573('0x11'));var qs=require(_0x6573('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x6573('0x13'))('api');var utils=require(_0x6573('0x14'));var config=require(_0x6573('0x15'));var licenseUtil=require(_0x6573('0x16'));var db=require(_0x6573('0x17'))['db'];function respondWithStatusCode(_0x445862,_0x11ccfe){_0x11ccfe=_0x11ccfe||0xcc;return function(_0x2656be){if(_0x2656be){return _0x445862[_0x6573('0x18')](_0x11ccfe);}return _0x445862['status'](_0x11ccfe)['end']();};}function respondWithResult(_0xc232f2,_0x1d5246){_0x1d5246=_0x1d5246||0xc8;return function(_0x2045c2){if(_0x2045c2){return _0xc232f2[_0x6573('0x19')](_0x1d5246)[_0x6573('0x1a')](_0x2045c2);}};}function respondWithFilteredResult(_0x1b99c5,_0x18f530){return function(_0x283612){if(_0x283612){var _0x3a335a=typeof _0x18f530[_0x6573('0x1b')]===_0x6573('0x1c')&&typeof _0x18f530['limit']===_0x6573('0x1c');var _0x55b6fb=_0x283612[_0x6573('0x1d')];var _0x365355=_0x3a335a?0x0:_0x18f530[_0x6573('0x1b')];var _0x59b978=_0x3a335a?_0x283612[_0x6573('0x1d')]:_0x18f530[_0x6573('0x1b')]+_0x18f530[_0x6573('0x1e')];var _0x2801e2;if(_0x59b978>=_0x55b6fb){_0x59b978=_0x55b6fb;_0x2801e2=0xc8;}else{_0x2801e2=0xce;}_0x1b99c5[_0x6573('0x19')](_0x2801e2);return _0x1b99c5[_0x6573('0x1f')](_0x6573('0x20'),_0x365355+'-'+_0x59b978+'/'+_0x55b6fb)[_0x6573('0x1a')](_0x283612);}return null;};}function patchUpdates(_0x1b8681){return function(_0x5c43dd){try{jsonpatch[_0x6573('0x21')](_0x5c43dd,_0x1b8681,!![]);}catch(_0x87a880){return BPromise['reject'](_0x87a880);}return _0x5c43dd[_0x6573('0x22')]();};}function saveUpdates(_0x527926,_0x2de13d){return function(_0x49d6b7){if(_0x49d6b7){return _0x49d6b7['update'](_0x527926)[_0x6573('0x23')](function(_0x52e0b9){return _0x52e0b9;});}return null;};}function removeEntity(_0x560571,_0x23e5e7){return function(_0x4319bb){if(_0x4319bb){return _0x4319bb[_0x6573('0x24')]()[_0x6573('0x23')](function(){var _0x365c51=_0x4319bb['get']({'plain':!![]});var _0xf3074d=_0x6573('0x25');return db[_0x6573('0x26')][_0x6573('0x24')]({'where':{'type':_0xf3074d,'resourceId':_0x365c51['id']}})[_0x6573('0x23')](function(){return _0x4319bb;});})[_0x6573('0x23')](function(){_0x560571[_0x6573('0x19')](0xcc)[_0x6573('0x27')]();});}};}function handleEntityNotFound(_0x58accd,_0x392780){return function(_0x31ed39){if(!_0x31ed39){_0x58accd[_0x6573('0x18')](0x194);}return _0x31ed39;};}function handleError(_0x35cfc6,_0x545426){_0x545426=_0x545426||0x1f4;return function(_0x2d0c39){logger[_0x6573('0x28')](_0x2d0c39['stack']);if(_0x2d0c39[_0x6573('0x29')]){delete _0x2d0c39[_0x6573('0x29')];}_0x35cfc6[_0x6573('0x19')](_0x545426)[_0x6573('0x2a')](_0x2d0c39);};}function getMustacheRender(_0xb4900e,_0x2ee8e6){return Mustache[_0x6573('0x2b')](_0xb4900e,_[_0x6573('0x2c')](_0x2ee8e6['body'],{'contact':_0x2ee8e6[_0x6573('0x2d')],'message':_0x2ee8e6['message'],'agent':_0x2ee8e6['agent'],'interaction':_0x2ee8e6[_0x6573('0x2e')],'account':_0x2ee8e6[_0x6573('0x2f')]}))||'';}exports[_0x6573('0x30')]=function(_0x27fc5c,_0x30fdff){var _0x4db6fe={},_0xaaf790={},_0x5383d6={'count':0x0,'rows':[]};return db[_0x6573('0x31')]['describe']()[_0x6573('0x23')](function(_0x5caf2f){_0xaaf790['model']=_['keys'](_0x5caf2f);_0xaaf790[_0x6573('0x32')]=_[_0x6573('0x33')](_0x27fc5c[_0x6573('0x32')]);_0xaaf790[_0x6573('0x34')]=_[_0x6573('0x35')](_0xaaf790[_0x6573('0x36')],_0xaaf790['query']);_0x4db6fe['attributes']=_[_0x6573('0x35')](_0xaaf790[_0x6573('0x36')],qs['fields'](_0x27fc5c[_0x6573('0x32')]['fields']));_0x4db6fe[_0x6573('0x37')]=_0x4db6fe[_0x6573('0x37')]['length']?_0x4db6fe[_0x6573('0x37')]:_0xaaf790['model'];if(!_0x27fc5c[_0x6573('0x32')][_0x6573('0x38')](_0x6573('0x39'))){_0x4db6fe[_0x6573('0x1e')]=qs[_0x6573('0x1e')](_0x27fc5c['query'][_0x6573('0x1e')]);_0x4db6fe[_0x6573('0x1b')]=qs['offset'](_0x27fc5c[_0x6573('0x32')][_0x6573('0x1b')]);}_0x4db6fe[_0x6573('0x3a')]=qs['sort'](_0x27fc5c['query'][_0x6573('0x3b')]);_0x4db6fe[_0x6573('0x3c')]=qs['filters'](_[_0x6573('0x3d')](_0x27fc5c[_0x6573('0x32')],_0xaaf790['filters']),_0x5caf2f);if(_0x27fc5c[_0x6573('0x32')][_0x6573('0x3e')]){_0x4db6fe[_0x6573('0x3c')]=_['merge'](_0x4db6fe['where'],{'$or':_['map'](_0x4db6fe[_0x6573('0x37')],function(_0x3f062c){var _0x16a50c={};_0x16a50c[_0x3f062c]={'$like':'%'+_0x27fc5c[_0x6573('0x32')][_0x6573('0x3e')]+'%'};return _0x16a50c;})});}_0x4db6fe=_[_0x6573('0x2c')]({},_0x4db6fe,_0x27fc5c[_0x6573('0x3f')]);var _0x1bc30e={'where':_0x4db6fe[_0x6573('0x3c')]};return db['CmCompany'][_0x6573('0x1d')](_0x1bc30e)['then'](function(_0x4a739c){_0x5383d6['count']=_0x4a739c;if(_0x27fc5c[_0x6573('0x32')][_0x6573('0x40')]){_0x4db6fe[_0x6573('0x41')]=[{'all':!![]}];}return db['CmCompany'][_0x6573('0x42')](_0x4db6fe);})[_0x6573('0x23')](function(_0x5e1ff7){_0x5383d6[_0x6573('0x43')]=_0x5e1ff7;return _0x5383d6;})[_0x6573('0x23')](respondWithFilteredResult(_0x30fdff,_0x4db6fe))[_0x6573('0x44')](handleError(_0x30fdff,null));})[_0x6573('0x44')](handleError(_0x30fdff,null));};exports[_0x6573('0x45')]=function(_0x5e2115,_0x31a58d){var _0x363ef3={'raw':![],'where':{'id':_0x5e2115[_0x6573('0x46')]['id']}},_0x5d7651={};_0x5d7651[_0x6573('0x36')]=_['keys'](db[_0x6573('0x31')][_0x6573('0x47')]);_0x5d7651['query']=_[_0x6573('0x33')](_0x5e2115[_0x6573('0x32')]);_0x5d7651['filters']=_[_0x6573('0x35')](_0x5d7651[_0x6573('0x36')],_0x5d7651[_0x6573('0x32')]);_0x363ef3['attributes']=_[_0x6573('0x35')](_0x5d7651[_0x6573('0x36')],qs['fields'](_0x5e2115['query']['fields']));_0x363ef3[_0x6573('0x37')]=_0x363ef3['attributes'][_0x6573('0x48')]?_0x363ef3[_0x6573('0x37')]:_0x5d7651['model'];if(_0x5e2115[_0x6573('0x32')]['includeAll']){_0x363ef3[_0x6573('0x41')]=[{'all':!![]}];}_0x363ef3=_['merge']({},_0x363ef3,_0x5e2115['options']);return db[_0x6573('0x31')][_0x6573('0x49')](_0x363ef3)['then'](handleEntityNotFound(_0x31a58d,null))['then'](respondWithResult(_0x31a58d,null))[_0x6573('0x44')](handleError(_0x31a58d,null));};exports['create']=function(_0x5d3026,_0x3f858f){return db['CmCompany'][_0x6573('0x4a')](_0x5d3026[_0x6573('0x4b')],{})[_0x6573('0x23')](function(_0x4198ea){var _0x3bc348=_0x5d3026['user'][_0x6573('0x4c')]({'plain':!![]});if(!_0x3bc348)throw new Error(_0x6573('0x4d'));if(_0x3bc348[_0x6573('0x4e')]===_0x6573('0x4f')){var _0x2c87a8=_0x4198ea[_0x6573('0x4c')]({'plain':!![]});var _0x104575=_0x6573('0x25');return db[_0x6573('0x50')][_0x6573('0x49')]({'where':{'name':_0x104575,'userProfileId':_0x3bc348[_0x6573('0x51')]},'raw':!![]})[_0x6573('0x23')](function(_0x5cd70b){if(_0x5cd70b&&_0x5cd70b[_0x6573('0x52')]===0x0){return db[_0x6573('0x26')]['create']({'name':_0x2c87a8[_0x6573('0x29')],'resourceId':_0x2c87a8['id'],'type':_0x5cd70b['name'],'sectionId':_0x5cd70b['id']},{})[_0x6573('0x23')](function(){return _0x4198ea;});}else{return _0x4198ea;}})[_0x6573('0x44')](function(_0x3f9fba){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3f9fba);throw _0x3f9fba;});}return _0x4198ea;})['then'](respondWithResult(_0x3f858f,0xc9))[_0x6573('0x44')](handleError(_0x3f858f,null));};exports[_0x6573('0x53')]=function(_0x1864bc,_0x4aa67d){if(_0x1864bc[_0x6573('0x4b')]['id']){delete _0x1864bc['body']['id'];}return db[_0x6573('0x31')][_0x6573('0x49')]({'where':{'id':_0x1864bc['params']['id']}})[_0x6573('0x23')](handleEntityNotFound(_0x4aa67d,null))[_0x6573('0x23')](saveUpdates(_0x1864bc[_0x6573('0x4b')],null))[_0x6573('0x23')](respondWithResult(_0x4aa67d,null))[_0x6573('0x44')](handleError(_0x4aa67d,null));};exports[_0x6573('0x24')]=function(_0x32043b,_0x7011){return db[_0x6573('0x31')]['find']({'where':{'id':_0x32043b[_0x6573('0x46')]['id']}})[_0x6573('0x23')](handleEntityNotFound(_0x7011,null))[_0x6573('0x23')](removeEntity(_0x7011,null))[_0x6573('0x44')](handleError(_0x7011,null));};exports[_0x6573('0x54')]=function(_0x4d5dcf,_0x5912f9){return db[_0x6573('0x31')][_0x6573('0x54')]()[_0x6573('0x23')](respondWithResult(_0x5912f9,null))[_0x6573('0x44')](handleError(_0x5912f9,null));};exports[_0x6573('0x55')]=function(_0x5de8e6,_0x3adf2b,_0xefc726){return db[_0x6573('0x56')][_0x6573('0x49')]({'where':{'id':_0x5de8e6[_0x6573('0x46')]['id']}})['then'](handleEntityNotFound(_0x3adf2b,null))['then'](function(_0x3608fc){if(_0x3608fc){return _0x3608fc[_0x6573('0x55')](_0x5de8e6[_0x6573('0x4b')][_0x6573('0x57')],_[_0x6573('0x58')](_0x5de8e6[_0x6573('0x4b')],[_0x6573('0x57'),'id'])||{});}})[_0x6573('0x23')](respondWithResult(_0x3adf2b,null))['catch'](handleError(_0x3adf2b,null));};exports[_0x6573('0x59')]=function(_0x20af89,_0x37e5b6,_0x4653a3){var _0x3dab66={};var _0x49b06e={};var _0x50d753;var _0x3310e5;return db[_0x6573('0x31')]['findOne']({'where':{'id':_0x20af89[_0x6573('0x46')]['id']}})[_0x6573('0x23')](handleEntityNotFound(_0x37e5b6,null))[_0x6573('0x23')](function(_0x52b3d6){if(_0x52b3d6){_0x50d753=_0x52b3d6;_0x49b06e[_0x6573('0x36')]=_['keys'](db[_0x6573('0x56')][_0x6573('0x47')]);_0x49b06e[_0x6573('0x32')]=_[_0x6573('0x33')](_0x20af89['query']);_0x49b06e[_0x6573('0x34')]=_[_0x6573('0x35')](_0x49b06e[_0x6573('0x36')],_0x49b06e['query']);_0x3dab66[_0x6573('0x37')]=_[_0x6573('0x35')](_0x49b06e['model'],qs[_0x6573('0x5a')](_0x20af89[_0x6573('0x32')]['fields']));_0x3dab66[_0x6573('0x37')]=_0x3dab66[_0x6573('0x37')][_0x6573('0x48')]?_0x3dab66['attributes']:_0x49b06e[_0x6573('0x36')];_0x3dab66[_0x6573('0x3a')]=qs[_0x6573('0x3b')](_0x20af89[_0x6573('0x32')][_0x6573('0x3b')]);_0x3dab66[_0x6573('0x3c')]=qs[_0x6573('0x34')](_[_0x6573('0x3d')](_0x20af89[_0x6573('0x32')],_0x49b06e[_0x6573('0x34')]));if(_0x20af89[_0x6573('0x32')][_0x6573('0x3e')]){_0x3dab66[_0x6573('0x3c')]=_[_0x6573('0x2c')](_0x3dab66[_0x6573('0x3c')],{'$or':_[_0x6573('0x5b')](_0x3dab66[_0x6573('0x37')],function(_0x522510){var _0x1c0adb={};_0x1c0adb[_0x522510]={'$like':'%'+_0x20af89['query']['filter']+'%'};return _0x1c0adb;})});}_0x3dab66=_['merge']({},_0x3dab66,_0x20af89[_0x6573('0x3f')]);return _0x50d753[_0x6573('0x59')](_0x3dab66);}})[_0x6573('0x23')](function(_0xe828f1){if(_0xe828f1){_0x3310e5=_0xe828f1[_0x6573('0x48')];if(!_0x20af89[_0x6573('0x32')]['hasOwnProperty'](_0x6573('0x39'))){_0x3dab66[_0x6573('0x1e')]=qs['limit'](_0x20af89['query'][_0x6573('0x1e')]);_0x3dab66[_0x6573('0x1b')]=qs['offset'](_0x20af89[_0x6573('0x32')][_0x6573('0x1b')]);}return _0x50d753['getContacts'](_0x3dab66);}})['then'](function(_0x5ee93a){if(_0x5ee93a){return _0x5ee93a?{'count':_0x3310e5,'rows':_0x5ee93a}:null;}})[_0x6573('0x23')](respondWithResult(_0x37e5b6,null))[_0x6573('0x44')](handleError(_0x37e5b6,null));};