fd7ebbd6fa5936857e99d99e00694ca9cbfceeba
[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 _0x3ae9=['name','send','CmCompany','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','includeAll','include','findAll','show','params','rawAttributes','options','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addContacts','omit','findOne','CmContact','getContacts','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','ejs','lodash','squel','crypto','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','update','then','Companies','UserProfileResource','destroy','error','stack'];(function(_0x4625b9,_0x40c92d){var _0x47c9eb=function(_0x227425){while(--_0x227425){_0x4625b9['push'](_0x4625b9['shift']());}};_0x47c9eb(++_0x40c92d);}(_0x3ae9,0x121));var _0x93ae=function(_0x13ea00,_0x12f610){_0x13ea00=_0x13ea00-0x0;var _0x1f7347=_0x3ae9[_0x13ea00];return _0x1f7347;};'use strict';var emlformat=require(_0x93ae('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x93ae('0x1'));var jsonpatch=require(_0x93ae('0x2'));var rp=require(_0x93ae('0x3'));var moment=require(_0x93ae('0x4'));var BPromise=require(_0x93ae('0x5'));var Mustache=require(_0x93ae('0x6'));var util=require('util');var path=require(_0x93ae('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x93ae('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x93ae('0x9'));var squel=require(_0x93ae('0xa'));var crypto=require(_0x93ae('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x93ae('0xc'));var querystring=require('querystring');var Papa=require(_0x93ae('0xd'));var Redis=require(_0x93ae('0xe'));var authService=require(_0x93ae('0xf'));var qs=require(_0x93ae('0x10'));var as=require(_0x93ae('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x93ae('0x12'))(_0x93ae('0x13'));var utils=require(_0x93ae('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2168fe,_0x351fd2){_0x351fd2=_0x351fd2||0xcc;return function(_0x59cbe9){if(_0x59cbe9){return _0x2168fe['sendStatus'](_0x351fd2);}return _0x2168fe[_0x93ae('0x15')](_0x351fd2)[_0x93ae('0x16')]();};}function respondWithResult(_0x4d6622,_0xa51c90){_0xa51c90=_0xa51c90||0xc8;return function(_0x16861d){if(_0x16861d){return _0x4d6622[_0x93ae('0x15')](_0xa51c90)['json'](_0x16861d);}};}function respondWithFilteredResult(_0x5920b5,_0x356023){return function(_0x2e5db5){if(_0x2e5db5){var _0x4440ba=typeof _0x356023[_0x93ae('0x17')]===_0x93ae('0x18')&&typeof _0x356023[_0x93ae('0x19')]===_0x93ae('0x18');var _0x5f462d=_0x2e5db5[_0x93ae('0x1a')];var _0x564693=_0x4440ba?0x0:_0x356023[_0x93ae('0x17')];var _0x197c88=_0x4440ba?_0x2e5db5['count']:_0x356023[_0x93ae('0x17')]+_0x356023[_0x93ae('0x19')];var _0x53d57b;if(_0x197c88>=_0x5f462d){_0x197c88=_0x5f462d;_0x53d57b=0xc8;}else{_0x53d57b=0xce;}_0x5920b5[_0x93ae('0x15')](_0x53d57b);return _0x5920b5[_0x93ae('0x1b')](_0x93ae('0x1c'),_0x564693+'-'+_0x197c88+'/'+_0x5f462d)[_0x93ae('0x1d')](_0x2e5db5);}return null;};}function patchUpdates(_0x2a538f){return function(_0x592013){try{jsonpatch[_0x93ae('0x1e')](_0x592013,_0x2a538f,!![]);}catch(_0x3c0d78){return BPromise[_0x93ae('0x1f')](_0x3c0d78);}return _0x592013['save']();};}function saveUpdates(_0x5d5d21,_0x13ebc6){return function(_0x3e4f05){if(_0x3e4f05){return _0x3e4f05[_0x93ae('0x20')](_0x5d5d21)[_0x93ae('0x21')](function(_0x2c6acd){return _0x2c6acd;});}return null;};}function removeEntity(_0x4b14c3,_0x193548){return function(_0x180211){if(_0x180211){return _0x180211['destroy']()[_0x93ae('0x21')](function(){var _0x12fb96=_0x180211['get']({'plain':!![]});var _0x252305=_0x93ae('0x22');return db[_0x93ae('0x23')][_0x93ae('0x24')]({'where':{'type':_0x252305,'resourceId':_0x12fb96['id']}})[_0x93ae('0x21')](function(){return _0x180211;});})[_0x93ae('0x21')](function(){_0x4b14c3[_0x93ae('0x15')](0xcc)[_0x93ae('0x16')]();});}};}function handleEntityNotFound(_0x8dd545,_0x49208a){return function(_0x3de2d0){if(!_0x3de2d0){_0x8dd545['sendStatus'](0x194);}return _0x3de2d0;};}function handleError(_0x5a4629,_0x31a416){_0x31a416=_0x31a416||0x1f4;return function(_0x2f42ea){logger[_0x93ae('0x25')](_0x2f42ea[_0x93ae('0x26')]);if(_0x2f42ea[_0x93ae('0x27')]){delete _0x2f42ea[_0x93ae('0x27')];}_0x5a4629[_0x93ae('0x15')](_0x31a416)[_0x93ae('0x28')](_0x2f42ea);};}exports['index']=function(_0xa272c6,_0x5ca40f){var _0x156b31={},_0x40226b={},_0x38d75c={'count':0x0,'rows':[]};return db[_0x93ae('0x29')]['describe']()[_0x93ae('0x21')](function(_0x2882c5){_0x40226b[_0x93ae('0x2a')]=_[_0x93ae('0x2b')](_0x2882c5);_0x40226b[_0x93ae('0x2c')]=_[_0x93ae('0x2b')](_0xa272c6[_0x93ae('0x2c')]);_0x40226b[_0x93ae('0x2d')]=_[_0x93ae('0x2e')](_0x40226b[_0x93ae('0x2a')],_0x40226b[_0x93ae('0x2c')]);_0x156b31[_0x93ae('0x2f')]=_['intersection'](_0x40226b['model'],qs[_0x93ae('0x30')](_0xa272c6[_0x93ae('0x2c')]['fields']));_0x156b31[_0x93ae('0x2f')]=_0x156b31[_0x93ae('0x2f')][_0x93ae('0x31')]?_0x156b31['attributes']:_0x40226b[_0x93ae('0x2a')];if(!_0xa272c6[_0x93ae('0x2c')][_0x93ae('0x32')](_0x93ae('0x33'))){_0x156b31[_0x93ae('0x19')]=qs[_0x93ae('0x19')](_0xa272c6[_0x93ae('0x2c')][_0x93ae('0x19')]);_0x156b31[_0x93ae('0x17')]=qs[_0x93ae('0x17')](_0xa272c6['query']['offset']);}_0x156b31[_0x93ae('0x34')]=qs[_0x93ae('0x35')](_0xa272c6[_0x93ae('0x2c')]['sort']);_0x156b31[_0x93ae('0x36')]=qs[_0x93ae('0x2d')](_[_0x93ae('0x37')](_0xa272c6[_0x93ae('0x2c')],_0x40226b[_0x93ae('0x2d')]),_0x2882c5);if(_0xa272c6[_0x93ae('0x2c')]['filter']){_0x156b31['where']=_[_0x93ae('0x38')](_0x156b31[_0x93ae('0x36')],{'$or':_['map'](_0x156b31[_0x93ae('0x2f')],function(_0x193525){var _0x5c75fd={};_0x5c75fd[_0x193525]={'$like':'%'+_0xa272c6['query'][_0x93ae('0x39')]+'%'};return _0x5c75fd;})});}_0x156b31=_['merge']({},_0x156b31,_0xa272c6['options']);var _0x1271b0={'where':_0x156b31[_0x93ae('0x36')]};return db[_0x93ae('0x29')][_0x93ae('0x1a')](_0x1271b0)[_0x93ae('0x21')](function(_0x5bfd10){_0x38d75c[_0x93ae('0x1a')]=_0x5bfd10;if(_0xa272c6[_0x93ae('0x2c')][_0x93ae('0x3a')]){_0x156b31[_0x93ae('0x3b')]=[{'all':!![]}];}return db[_0x93ae('0x29')][_0x93ae('0x3c')](_0x156b31);})[_0x93ae('0x21')](function(_0x3015de){_0x38d75c['rows']=_0x3015de;return _0x38d75c;})[_0x93ae('0x21')](respondWithFilteredResult(_0x5ca40f,_0x156b31))['catch'](handleError(_0x5ca40f,null));})['catch'](handleError(_0x5ca40f,null));};exports[_0x93ae('0x3d')]=function(_0x55d15e,_0x59864c){var _0x1f6922={'raw':![],'where':{'id':_0x55d15e[_0x93ae('0x3e')]['id']}},_0x5d61cc={};_0x5d61cc[_0x93ae('0x2a')]=_['keys'](db[_0x93ae('0x29')][_0x93ae('0x3f')]);_0x5d61cc[_0x93ae('0x2c')]=_[_0x93ae('0x2b')](_0x55d15e[_0x93ae('0x2c')]);_0x5d61cc[_0x93ae('0x2d')]=_[_0x93ae('0x2e')](_0x5d61cc['model'],_0x5d61cc['query']);_0x1f6922[_0x93ae('0x2f')]=_['intersection'](_0x5d61cc[_0x93ae('0x2a')],qs[_0x93ae('0x30')](_0x55d15e[_0x93ae('0x2c')][_0x93ae('0x30')]));_0x1f6922[_0x93ae('0x2f')]=_0x1f6922['attributes'][_0x93ae('0x31')]?_0x1f6922[_0x93ae('0x2f')]:_0x5d61cc[_0x93ae('0x2a')];if(_0x55d15e[_0x93ae('0x2c')][_0x93ae('0x3a')]){_0x1f6922[_0x93ae('0x3b')]=[{'all':!![]}];}_0x1f6922=_[_0x93ae('0x38')]({},_0x1f6922,_0x55d15e[_0x93ae('0x40')]);return db[_0x93ae('0x29')]['find'](_0x1f6922)[_0x93ae('0x21')](handleEntityNotFound(_0x59864c,null))[_0x93ae('0x21')](respondWithResult(_0x59864c,null))[_0x93ae('0x41')](handleError(_0x59864c,null));};exports[_0x93ae('0x42')]=function(_0x50b824,_0x59a32d){return db[_0x93ae('0x29')]['create'](_0x50b824[_0x93ae('0x43')],{})[_0x93ae('0x21')](function(_0x44b9da){var _0x400b88=_0x50b824[_0x93ae('0x44')]['get']({'plain':!![]});if(!_0x400b88)throw new Error(_0x93ae('0x45'));if(_0x400b88[_0x93ae('0x46')]===_0x93ae('0x44')){var _0x518bc8=_0x44b9da['get']({'plain':!![]});var _0x4be9dd=_0x93ae('0x22');return db[_0x93ae('0x47')][_0x93ae('0x48')]({'where':{'name':_0x4be9dd,'userProfileId':_0x400b88[_0x93ae('0x49')]},'raw':!![]})[_0x93ae('0x21')](function(_0x2c3fbc){if(_0x2c3fbc&&_0x2c3fbc[_0x93ae('0x4a')]===0x0){return db[_0x93ae('0x23')][_0x93ae('0x42')]({'name':_0x518bc8[_0x93ae('0x27')],'resourceId':_0x518bc8['id'],'type':_0x2c3fbc['name'],'sectionId':_0x2c3fbc['id']},{})[_0x93ae('0x21')](function(){return _0x44b9da;});}else{return _0x44b9da;}})['catch'](function(_0x5e0d49){logger[_0x93ae('0x25')](_0x93ae('0x4b'),_0x5e0d49);throw _0x5e0d49;});}return _0x44b9da;})[_0x93ae('0x21')](respondWithResult(_0x59a32d,0xc9))[_0x93ae('0x41')](handleError(_0x59a32d,null));};exports[_0x93ae('0x20')]=function(_0x395f50,_0x51754e){if(_0x395f50[_0x93ae('0x43')]['id']){delete _0x395f50['body']['id'];}return db[_0x93ae('0x29')][_0x93ae('0x48')]({'where':{'id':_0x395f50[_0x93ae('0x3e')]['id']}})[_0x93ae('0x21')](handleEntityNotFound(_0x51754e,null))['then'](saveUpdates(_0x395f50[_0x93ae('0x43')],null))['then'](respondWithResult(_0x51754e,null))[_0x93ae('0x41')](handleError(_0x51754e,null));};exports[_0x93ae('0x24')]=function(_0x6a75eb,_0x3751b7){return db['CmCompany'][_0x93ae('0x48')]({'where':{'id':_0x6a75eb['params']['id']}})[_0x93ae('0x21')](handleEntityNotFound(_0x3751b7,null))[_0x93ae('0x21')](removeEntity(_0x3751b7,null))[_0x93ae('0x41')](handleError(_0x3751b7,null));};exports[_0x93ae('0x4c')]=function(_0x41a0c2,_0x2a09d8){return db['CmCompany'][_0x93ae('0x4c')]()[_0x93ae('0x21')](respondWithResult(_0x2a09d8,null))['catch'](handleError(_0x2a09d8,null));};exports[_0x93ae('0x4d')]=function(_0x4a4a24,_0x3f233d,_0x16cfe9){return db['CmContact'][_0x93ae('0x48')]({'where':{'id':_0x4a4a24[_0x93ae('0x3e')]['id']}})['then'](handleEntityNotFound(_0x3f233d,null))[_0x93ae('0x21')](function(_0x2e97e3){if(_0x2e97e3){return _0x2e97e3['addContacts'](_0x4a4a24[_0x93ae('0x43')]['ids'],_[_0x93ae('0x4e')](_0x4a4a24[_0x93ae('0x43')],['ids','id'])||{});}})[_0x93ae('0x21')](respondWithResult(_0x3f233d,null))['catch'](handleError(_0x3f233d,null));};exports['getContacts']=function(_0xdf6a3,_0x5cda9d,_0x5c80b7){var _0x5bd597={};var _0x335df4={};var _0x34a7a5;var _0x1984bf;return db[_0x93ae('0x29')][_0x93ae('0x4f')]({'where':{'id':_0xdf6a3['params']['id']}})[_0x93ae('0x21')](handleEntityNotFound(_0x5cda9d,null))['then'](function(_0x24051d){if(_0x24051d){_0x34a7a5=_0x24051d;_0x335df4['model']=_['keys'](db[_0x93ae('0x50')][_0x93ae('0x3f')]);_0x335df4[_0x93ae('0x2c')]=_[_0x93ae('0x2b')](_0xdf6a3[_0x93ae('0x2c')]);_0x335df4[_0x93ae('0x2d')]=_[_0x93ae('0x2e')](_0x335df4[_0x93ae('0x2a')],_0x335df4[_0x93ae('0x2c')]);_0x5bd597[_0x93ae('0x2f')]=_['intersection'](_0x335df4['model'],qs[_0x93ae('0x30')](_0xdf6a3[_0x93ae('0x2c')][_0x93ae('0x30')]));_0x5bd597[_0x93ae('0x2f')]=_0x5bd597['attributes'][_0x93ae('0x31')]?_0x5bd597[_0x93ae('0x2f')]:_0x335df4[_0x93ae('0x2a')];_0x5bd597[_0x93ae('0x34')]=qs[_0x93ae('0x35')](_0xdf6a3[_0x93ae('0x2c')][_0x93ae('0x35')]);_0x5bd597[_0x93ae('0x36')]=qs[_0x93ae('0x2d')](_['pick'](_0xdf6a3['query'],_0x335df4[_0x93ae('0x2d')]));if(_0xdf6a3['query'][_0x93ae('0x39')]){_0x5bd597[_0x93ae('0x36')]=_[_0x93ae('0x38')](_0x5bd597[_0x93ae('0x36')],{'$or':_['map'](_0x5bd597[_0x93ae('0x2f')],function(_0x3db5da){var _0x5cfff4={};_0x5cfff4[_0x3db5da]={'$like':'%'+_0xdf6a3[_0x93ae('0x2c')][_0x93ae('0x39')]+'%'};return _0x5cfff4;})});}_0x5bd597=_[_0x93ae('0x38')]({},_0x5bd597,_0xdf6a3[_0x93ae('0x40')]);return _0x34a7a5[_0x93ae('0x51')](_0x5bd597);}})[_0x93ae('0x21')](function(_0x5b874d){if(_0x5b874d){_0x1984bf=_0x5b874d[_0x93ae('0x31')];if(!_0xdf6a3[_0x93ae('0x2c')][_0x93ae('0x32')](_0x93ae('0x33'))){_0x5bd597[_0x93ae('0x19')]=qs[_0x93ae('0x19')](_0xdf6a3[_0x93ae('0x2c')][_0x93ae('0x19')]);_0x5bd597[_0x93ae('0x17')]=qs[_0x93ae('0x17')](_0xdf6a3[_0x93ae('0x2c')]['offset']);}return _0x34a7a5[_0x93ae('0x51')](_0x5bd597);}})[_0x93ae('0x21')](function(_0x1af699){if(_0x1af699){return _0x1af699?{'count':_0x1984bf,'rows':_0x1af699}:null;}})[_0x93ae('0x21')](respondWithResult(_0x5cda9d,null))[_0x93ae('0x41')](handleError(_0x5cda9d,null));};