71435d2c6925c0e9b7cf36eda512b5ac48a3efc2
[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 _0x8151=['describe','addContacts','CmContact','ids','omit','getContacts','sort','rimraf','request-promise','moment','bluebird','mustache','path','sox','ejs','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','get','Companies','destroy','error','stack','name','send','index','CmCompany','keys','query','filters','attributes','intersection','model','fields','length','hasOwnProperty','nolimit','order','where','pick','map','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0x4c599b,_0x356fc7){var _0x4798b3=function(_0x5a3f7c){while(--_0x5a3f7c){_0x4c599b['push'](_0x4c599b['shift']());}};_0x4798b3(++_0x356fc7);}(_0x8151,0x15f));var _0x1815=function(_0x4e61bc,_0x1cff51){_0x4e61bc=_0x4e61bc-0x0;var _0x4e0fb1=_0x8151[_0x4e61bc];return _0x4e0fb1;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x1815('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x1815('0x1'));var moment=require(_0x1815('0x2'));var BPromise=require(_0x1815('0x3'));var Mustache=require(_0x1815('0x4'));var util=require('util');var path=require(_0x1815('0x5'));var sox=require(_0x1815('0x6'));var csv=require('to-csv');var ejs=require(_0x1815('0x7'));var fs=require('fs');var _=require('lodash');var squel=require(_0x1815('0x8'));var crypto=require('crypto');var jsforce=require(_0x1815('0x9'));var deskjs=require(_0x1815('0xa'));var toCsv=require(_0x1815('0xb'));var querystring=require(_0x1815('0xc'));var Papa=require(_0x1815('0xd'));var Redis=require(_0x1815('0xe'));var authService=require(_0x1815('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1815('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0x1815('0x11'));var config=require(_0x1815('0x12'));var licenseUtil=require(_0x1815('0x13'));var db=require(_0x1815('0x14'))['db'];function respondWithStatusCode(_0xda80d7,_0x4648f3){_0x4648f3=_0x4648f3||0xcc;return function(_0x49297b){if(_0x49297b){return _0xda80d7[_0x1815('0x15')](_0x4648f3);}return _0xda80d7[_0x1815('0x16')](_0x4648f3)[_0x1815('0x17')]();};}function respondWithResult(_0x4eec4f,_0x202f46){_0x202f46=_0x202f46||0xc8;return function(_0x16a711){if(_0x16a711){return _0x4eec4f['status'](_0x202f46)[_0x1815('0x18')](_0x16a711);}};}function respondWithFilteredResult(_0x4affa4,_0x40ae68){return function(_0x1f3e21){if(_0x1f3e21){var _0x3b594d=_0x1f3e21[_0x1815('0x19')],_0x1d8dba=_0x40ae68[_0x1815('0x1a')],_0x2a393a=_0x40ae68['offset']+_0x40ae68[_0x1815('0x1b')],_0x297d24;if(_0x2a393a>=_0x3b594d){_0x2a393a=_0x3b594d;_0x297d24=0xc8;}else{_0x297d24=0xce;}_0x4affa4[_0x1815('0x16')](_0x297d24);return _0x4affa4[_0x1815('0x1c')](_0x1815('0x1d'),_0x1d8dba+'-'+_0x2a393a+'/'+_0x3b594d)[_0x1815('0x18')](_0x1f3e21);}return null;};}function patchUpdates(_0x552cd8){return function(_0x33f664){try{jsonpatch[_0x1815('0x1e')](_0x33f664,_0x552cd8,!![]);}catch(_0x5a5792){return BPromise[_0x1815('0x1f')](_0x5a5792);}return _0x33f664[_0x1815('0x20')]();};}function saveUpdates(_0x16c5c4,_0xc72d72){return function(_0x4c63f5){if(_0x4c63f5){return _0x4c63f5[_0x1815('0x21')](_0x16c5c4)[_0x1815('0x22')](function(_0x39a738){return _0x39a738;});}return null;};}function removeEntity(_0x2e4763,_0x4e5d05){return function(_0x494af6){if(_0x494af6){return _0x494af6['destroy']()[_0x1815('0x22')](function(){var _0x3727e7=_0x494af6[_0x1815('0x23')]({'plain':!![]});var _0x2b0536=_0x1815('0x24');return db['UserProfileResource'][_0x1815('0x25')]({'where':{'type':_0x2b0536,'resourceId':_0x3727e7['id']}})['then'](function(){return _0x494af6;});})[_0x1815('0x22')](function(){_0x2e4763[_0x1815('0x16')](0xcc)[_0x1815('0x17')]();});}};}function handleEntityNotFound(_0x30ba21,_0x4f0ebf){return function(_0x4e76ab){if(!_0x4e76ab){_0x30ba21['sendStatus'](0x194);}return _0x4e76ab;};}function handleError(_0x5aa74e,_0x1e6b80){_0x1e6b80=_0x1e6b80||0x1f4;return function(_0x3e3b25){logger[_0x1815('0x26')](_0x3e3b25[_0x1815('0x27')]);if(_0x3e3b25[_0x1815('0x28')]){delete _0x3e3b25['name'];}_0x5aa74e[_0x1815('0x16')](_0x1e6b80)[_0x1815('0x29')](_0x3e3b25);};}exports[_0x1815('0x2a')]=function(_0x34c3a6,_0x40a11f){var _0x4b2a5b={},_0x33b600={},_0x1a5a23={'count':0x0,'rows':[]};return db[_0x1815('0x2b')]['describe']()[_0x1815('0x22')](function(_0x463927){_0x33b600['model']=_[_0x1815('0x2c')](_0x463927);_0x33b600['query']=_[_0x1815('0x2c')](_0x34c3a6[_0x1815('0x2d')]);_0x33b600[_0x1815('0x2e')]=_['intersection'](_0x33b600['model'],_0x33b600[_0x1815('0x2d')]);_0x4b2a5b[_0x1815('0x2f')]=_[_0x1815('0x30')](_0x33b600[_0x1815('0x31')],qs[_0x1815('0x32')](_0x34c3a6['query'][_0x1815('0x32')]));_0x4b2a5b['attributes']=_0x4b2a5b[_0x1815('0x2f')][_0x1815('0x33')]?_0x4b2a5b[_0x1815('0x2f')]:_0x33b600['model'];if(!_0x34c3a6[_0x1815('0x2d')][_0x1815('0x34')](_0x1815('0x35'))){_0x4b2a5b[_0x1815('0x1b')]=qs[_0x1815('0x1b')](_0x34c3a6[_0x1815('0x2d')][_0x1815('0x1b')]);_0x4b2a5b[_0x1815('0x1a')]=qs[_0x1815('0x1a')](_0x34c3a6[_0x1815('0x2d')][_0x1815('0x1a')]);}_0x4b2a5b[_0x1815('0x36')]=qs['sort'](_0x34c3a6[_0x1815('0x2d')]['sort']);_0x4b2a5b[_0x1815('0x37')]=qs[_0x1815('0x2e')](_[_0x1815('0x38')](_0x34c3a6[_0x1815('0x2d')],_0x33b600[_0x1815('0x2e')]),_0x463927);if(_0x34c3a6[_0x1815('0x2d')]['filter']){_0x4b2a5b['where']=_['merge'](_0x4b2a5b['where'],{'$or':_[_0x1815('0x39')](_0x4b2a5b[_0x1815('0x2f')],function(_0xec45ba){var _0x1c2ac2={};_0x1c2ac2[_0xec45ba]={'$like':'%'+_0x34c3a6[_0x1815('0x2d')][_0x1815('0x3a')]+'%'};return _0x1c2ac2;})});}_0x4b2a5b=_[_0x1815('0x3b')]({},_0x4b2a5b,_0x34c3a6[_0x1815('0x3c')]);var _0x18d09b={'where':_0x4b2a5b[_0x1815('0x37')]};return db['CmCompany']['count'](_0x18d09b)['then'](function(_0x332995){_0x1a5a23[_0x1815('0x19')]=_0x332995;if(_0x34c3a6[_0x1815('0x2d')][_0x1815('0x3d')]){_0x4b2a5b[_0x1815('0x3e')]=[{'all':!![]}];}return db[_0x1815('0x2b')][_0x1815('0x3f')](_0x4b2a5b);})[_0x1815('0x22')](function(_0x1729ce){_0x1a5a23[_0x1815('0x40')]=_0x1729ce;return _0x1a5a23;})[_0x1815('0x22')](respondWithFilteredResult(_0x40a11f,_0x4b2a5b))[_0x1815('0x41')](handleError(_0x40a11f,null));})[_0x1815('0x41')](handleError(_0x40a11f,null));};exports[_0x1815('0x42')]=function(_0x57d0ff,_0x432f0e){var _0x3292ba={'raw':![],'where':{'id':_0x57d0ff[_0x1815('0x43')]['id']}},_0x2bebc={};_0x2bebc['model']=_[_0x1815('0x2c')](db['CmCompany'][_0x1815('0x44')]);_0x2bebc[_0x1815('0x2d')]=_['keys'](_0x57d0ff[_0x1815('0x2d')]);_0x2bebc[_0x1815('0x2e')]=_[_0x1815('0x30')](_0x2bebc[_0x1815('0x31')],_0x2bebc[_0x1815('0x2d')]);_0x3292ba[_0x1815('0x2f')]=_[_0x1815('0x30')](_0x2bebc['model'],qs[_0x1815('0x32')](_0x57d0ff[_0x1815('0x2d')]['fields']));_0x3292ba[_0x1815('0x2f')]=_0x3292ba[_0x1815('0x2f')][_0x1815('0x33')]?_0x3292ba['attributes']:_0x2bebc[_0x1815('0x31')];if(_0x57d0ff[_0x1815('0x2d')][_0x1815('0x3d')]){_0x3292ba[_0x1815('0x3e')]=[{'all':!![]}];}_0x3292ba=_['merge']({},_0x3292ba,_0x57d0ff[_0x1815('0x3c')]);return db[_0x1815('0x2b')][_0x1815('0x45')](_0x3292ba)[_0x1815('0x22')](handleEntityNotFound(_0x432f0e,null))['then'](respondWithResult(_0x432f0e,null))['catch'](handleError(_0x432f0e,null));};exports[_0x1815('0x46')]=function(_0x47b4ad,_0x59fce8){return db[_0x1815('0x2b')][_0x1815('0x46')](_0x47b4ad[_0x1815('0x47')],{})[_0x1815('0x22')](function(_0x5406b8){var _0xaf668b=_0x47b4ad[_0x1815('0x48')][_0x1815('0x23')]({'plain':!![]});if(!_0xaf668b)throw new Error(_0x1815('0x49'));if(_0xaf668b[_0x1815('0x4a')]==='user'){var _0x1655c8=_0x5406b8[_0x1815('0x23')]({'plain':!![]});var _0x14e902='Companies';return db[_0x1815('0x4b')][_0x1815('0x45')]({'where':{'name':_0x14e902,'userProfileId':_0xaf668b['userProfileId']},'raw':!![]})[_0x1815('0x22')](function(_0x2bfc04){if(_0x2bfc04&&_0x2bfc04[_0x1815('0x4c')]===0x0){return db[_0x1815('0x4d')][_0x1815('0x46')]({'name':_0x1655c8[_0x1815('0x28')],'resourceId':_0x1655c8['id'],'type':_0x2bfc04[_0x1815('0x28')],'sectionId':_0x2bfc04['id']},{})[_0x1815('0x22')](function(){return _0x5406b8;});}else{return _0x5406b8;}})[_0x1815('0x41')](function(_0x44bcf2){logger[_0x1815('0x26')](_0x1815('0x4e'),_0x44bcf2);throw _0x44bcf2;});}return _0x5406b8;})[_0x1815('0x22')](respondWithResult(_0x59fce8,0xc9))[_0x1815('0x41')](handleError(_0x59fce8,null));};exports[_0x1815('0x21')]=function(_0x9f79de,_0x459087){if(_0x9f79de['body']['id']){delete _0x9f79de[_0x1815('0x47')]['id'];}return db[_0x1815('0x2b')][_0x1815('0x45')]({'where':{'id':_0x9f79de[_0x1815('0x43')]['id']}})[_0x1815('0x22')](handleEntityNotFound(_0x459087,null))[_0x1815('0x22')](saveUpdates(_0x9f79de[_0x1815('0x47')],null))[_0x1815('0x22')](respondWithResult(_0x459087,null))[_0x1815('0x41')](handleError(_0x459087,null));};exports['destroy']=function(_0x3784c9,_0x53d2da){return db[_0x1815('0x2b')]['find']({'where':{'id':_0x3784c9[_0x1815('0x43')]['id']}})[_0x1815('0x22')](handleEntityNotFound(_0x53d2da,null))[_0x1815('0x22')](removeEntity(_0x53d2da,null))['catch'](handleError(_0x53d2da,null));};exports['describe']=function(_0x3cf2a6,_0x494108){return db['CmCompany'][_0x1815('0x4f')]()[_0x1815('0x22')](respondWithResult(_0x494108,null))[_0x1815('0x41')](handleError(_0x494108,null));};exports[_0x1815('0x50')]=function(_0x2a3097,_0x27804f,_0x33c07e){return db[_0x1815('0x51')]['find']({'where':{'id':_0x2a3097[_0x1815('0x43')]['id']}})[_0x1815('0x22')](handleEntityNotFound(_0x27804f,null))[_0x1815('0x22')](function(_0x4b59e3){if(_0x4b59e3){return _0x4b59e3[_0x1815('0x50')](_0x2a3097[_0x1815('0x47')][_0x1815('0x52')],_[_0x1815('0x53')](_0x2a3097['body'],[_0x1815('0x52'),'id'])||{});}})[_0x1815('0x22')](respondWithResult(_0x27804f,null))['catch'](handleError(_0x27804f,null));};exports[_0x1815('0x54')]=function(_0x43250e,_0x2f178c,_0x30e83b){var _0x568799={};var _0x33f501={};var _0x5e5974;var _0x425d7a;return db[_0x1815('0x2b')]['findOne']({'where':{'id':_0x43250e[_0x1815('0x43')]['id']}})[_0x1815('0x22')](handleEntityNotFound(_0x2f178c,null))[_0x1815('0x22')](function(_0x1708b3){if(_0x1708b3){_0x5e5974=_0x1708b3;_0x33f501[_0x1815('0x31')]=_['keys'](db['CmContact']['rawAttributes']);_0x33f501[_0x1815('0x2d')]=_[_0x1815('0x2c')](_0x43250e['query']);_0x33f501[_0x1815('0x2e')]=_[_0x1815('0x30')](_0x33f501[_0x1815('0x31')],_0x33f501[_0x1815('0x2d')]);_0x568799['attributes']=_[_0x1815('0x30')](_0x33f501['model'],qs[_0x1815('0x32')](_0x43250e['query'][_0x1815('0x32')]));_0x568799[_0x1815('0x2f')]=_0x568799[_0x1815('0x2f')][_0x1815('0x33')]?_0x568799['attributes']:_0x33f501['model'];_0x568799[_0x1815('0x36')]=qs['sort'](_0x43250e[_0x1815('0x2d')][_0x1815('0x55')]);_0x568799[_0x1815('0x37')]=qs[_0x1815('0x2e')](_[_0x1815('0x38')](_0x43250e['query'],_0x33f501[_0x1815('0x2e')]));if(_0x43250e['query'][_0x1815('0x3a')]){_0x568799[_0x1815('0x37')]=_[_0x1815('0x3b')](_0x568799[_0x1815('0x37')],{'$or':_[_0x1815('0x39')](_0x568799[_0x1815('0x2f')],function(_0x22a123){var _0x55194f={};_0x55194f[_0x22a123]={'$like':'%'+_0x43250e['query'][_0x1815('0x3a')]+'%'};return _0x55194f;})});}_0x568799=_[_0x1815('0x3b')]({},_0x568799,_0x43250e[_0x1815('0x3c')]);return _0x5e5974['getContacts'](_0x568799);}})[_0x1815('0x22')](function(_0xd18246){if(_0xd18246){_0x425d7a=_0xd18246['length'];if(!_0x43250e[_0x1815('0x2d')][_0x1815('0x34')](_0x1815('0x35'))){_0x568799[_0x1815('0x1b')]=qs[_0x1815('0x1b')](_0x43250e['query']['limit']);_0x568799['offset']=qs['offset'](_0x43250e[_0x1815('0x2d')][_0x1815('0x1a')]);}return _0x5e5974['getContacts'](_0x568799);}})[_0x1815('0x22')](function(_0x4e1090){if(_0x4e1090){return _0x4e1090?{'count':_0x425d7a,'rows':_0x4e1090}:null;}})['then'](respondWithResult(_0x2f178c,null))[_0x1815('0x41')](handleError(_0x2f178c,null));};