38a81fa0e6734b8904c53fafec4be3d74a9eeedb
[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 _0x90c7=['../../mysqldb','json','undefined','limit','count','offset','status','set','Content-Range','reject','save','update','then','destroy','get','Companies','error','stack','name','send','index','describe','model','query','keys','attributes','fields','length','hasOwnProperty','order','sort','where','filters','filter','merge','map','options','CmCompany','includeAll','findAll','rows','catch','params','rawAttributes','intersection','include','find','create','body','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addContacts','ids','omit','findOne','CmContact','pick','getContacts','eml-format','rimraf','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment'];(function(_0x355c9b,_0x53dffe){var _0x1b904e=function(_0x31f744){while(--_0x31f744){_0x355c9b['push'](_0x355c9b['shift']());}};_0x1b904e(++_0x53dffe);}(_0x90c7,0xe5));var _0x790c=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x90c7[_0x501510];return _0x1e6ee5;};'use strict';var emlformat=require(_0x790c('0x0'));var rimraf=require(_0x790c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x790c('0x2'));var rp=require(_0x790c('0x3'));var moment=require(_0x790c('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x790c('0x5'));var path=require(_0x790c('0x6'));var sox=require(_0x790c('0x7'));var csv=require(_0x790c('0x8'));var ejs=require(_0x790c('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x790c('0xa'));var squel=require('squel');var crypto=require(_0x790c('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x790c('0xc'));var toCsv=require(_0x790c('0x8'));var querystring=require(_0x790c('0xd'));var Papa=require(_0x790c('0xe'));var Redis=require(_0x790c('0xf'));var authService=require(_0x790c('0x10'));var qs=require(_0x790c('0x11'));var as=require(_0x790c('0x12'));var hardwareService=require(_0x790c('0x13'));var logger=require(_0x790c('0x14'))(_0x790c('0x15'));var utils=require('../../config/utils');var config=require(_0x790c('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x790c('0x17'))['db'];function respondWithStatusCode(_0x4334ba,_0x38135e){_0x38135e=_0x38135e||0xcc;return function(_0x3f6dd3){if(_0x3f6dd3){return _0x4334ba['sendStatus'](_0x38135e);}return _0x4334ba['status'](_0x38135e)['end']();};}function respondWithResult(_0x3d25e1,_0x3833d1){_0x3833d1=_0x3833d1||0xc8;return function(_0xc770f4){if(_0xc770f4){return _0x3d25e1['status'](_0x3833d1)[_0x790c('0x18')](_0xc770f4);}};}function respondWithFilteredResult(_0x2d634d,_0x24830d){return function(_0x3be3c5){if(_0x3be3c5){var _0x2a26e7=typeof _0x24830d['offset']===_0x790c('0x19')&&typeof _0x24830d[_0x790c('0x1a')]===_0x790c('0x19');var _0x22f4eb=_0x3be3c5[_0x790c('0x1b')];var _0x31a4e1=_0x2a26e7?0x0:_0x24830d[_0x790c('0x1c')];var _0xcc0361=_0x2a26e7?_0x3be3c5[_0x790c('0x1b')]:_0x24830d[_0x790c('0x1c')]+_0x24830d[_0x790c('0x1a')];var _0x10628f;if(_0xcc0361>=_0x22f4eb){_0xcc0361=_0x22f4eb;_0x10628f=0xc8;}else{_0x10628f=0xce;}_0x2d634d[_0x790c('0x1d')](_0x10628f);return _0x2d634d[_0x790c('0x1e')](_0x790c('0x1f'),_0x31a4e1+'-'+_0xcc0361+'/'+_0x22f4eb)[_0x790c('0x18')](_0x3be3c5);}return null;};}function patchUpdates(_0x150e9c){return function(_0x45c310){try{jsonpatch['apply'](_0x45c310,_0x150e9c,!![]);}catch(_0x128e24){return BPromise[_0x790c('0x20')](_0x128e24);}return _0x45c310[_0x790c('0x21')]();};}function saveUpdates(_0x5a42a7,_0x2b0c14){return function(_0x17fc75){if(_0x17fc75){return _0x17fc75[_0x790c('0x22')](_0x5a42a7)[_0x790c('0x23')](function(_0x3ba7c9){return _0x3ba7c9;});}return null;};}function removeEntity(_0xe1eef8,_0x47d518){return function(_0x4b500a){if(_0x4b500a){return _0x4b500a[_0x790c('0x24')]()['then'](function(){var _0x10a1e1=_0x4b500a[_0x790c('0x25')]({'plain':!![]});var _0x1d3b84=_0x790c('0x26');return db['UserProfileResource']['destroy']({'where':{'type':_0x1d3b84,'resourceId':_0x10a1e1['id']}})[_0x790c('0x23')](function(){return _0x4b500a;});})[_0x790c('0x23')](function(){_0xe1eef8[_0x790c('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x342bad,_0x29fa3e){return function(_0x4f00e2){if(!_0x4f00e2){_0x342bad['sendStatus'](0x194);}return _0x4f00e2;};}function handleError(_0x1a1693,_0x211aca){_0x211aca=_0x211aca||0x1f4;return function(_0x1ab186){logger[_0x790c('0x27')](_0x1ab186[_0x790c('0x28')]);if(_0x1ab186[_0x790c('0x29')]){delete _0x1ab186['name'];}_0x1a1693[_0x790c('0x1d')](_0x211aca)[_0x790c('0x2a')](_0x1ab186);};}exports[_0x790c('0x2b')]=function(_0x347f79,_0xd860f4){var _0x4608f5={},_0x3713bc={},_0x3a3fbb={'count':0x0,'rows':[]};return db['CmCompany'][_0x790c('0x2c')]()[_0x790c('0x23')](function(_0x562c34){_0x3713bc[_0x790c('0x2d')]=_['keys'](_0x562c34);_0x3713bc[_0x790c('0x2e')]=_[_0x790c('0x2f')](_0x347f79['query']);_0x3713bc['filters']=_['intersection'](_0x3713bc['model'],_0x3713bc['query']);_0x4608f5[_0x790c('0x30')]=_['intersection'](_0x3713bc[_0x790c('0x2d')],qs['fields'](_0x347f79[_0x790c('0x2e')][_0x790c('0x31')]));_0x4608f5[_0x790c('0x30')]=_0x4608f5['attributes'][_0x790c('0x32')]?_0x4608f5['attributes']:_0x3713bc['model'];if(!_0x347f79[_0x790c('0x2e')][_0x790c('0x33')]('nolimit')){_0x4608f5[_0x790c('0x1a')]=qs[_0x790c('0x1a')](_0x347f79[_0x790c('0x2e')][_0x790c('0x1a')]);_0x4608f5[_0x790c('0x1c')]=qs[_0x790c('0x1c')](_0x347f79[_0x790c('0x2e')][_0x790c('0x1c')]);}_0x4608f5[_0x790c('0x34')]=qs[_0x790c('0x35')](_0x347f79[_0x790c('0x2e')][_0x790c('0x35')]);_0x4608f5[_0x790c('0x36')]=qs['filters'](_['pick'](_0x347f79[_0x790c('0x2e')],_0x3713bc[_0x790c('0x37')]),_0x562c34);if(_0x347f79[_0x790c('0x2e')][_0x790c('0x38')]){_0x4608f5['where']=_[_0x790c('0x39')](_0x4608f5[_0x790c('0x36')],{'$or':_[_0x790c('0x3a')](_0x4608f5[_0x790c('0x30')],function(_0x49a1ae){var _0x11a0ec={};_0x11a0ec[_0x49a1ae]={'$like':'%'+_0x347f79['query'][_0x790c('0x38')]+'%'};return _0x11a0ec;})});}_0x4608f5=_[_0x790c('0x39')]({},_0x4608f5,_0x347f79[_0x790c('0x3b')]);var _0x3fa620={'where':_0x4608f5[_0x790c('0x36')]};return db[_0x790c('0x3c')][_0x790c('0x1b')](_0x3fa620)[_0x790c('0x23')](function(_0x4a2dc1){_0x3a3fbb[_0x790c('0x1b')]=_0x4a2dc1;if(_0x347f79['query'][_0x790c('0x3d')]){_0x4608f5['include']=[{'all':!![]}];}return db[_0x790c('0x3c')][_0x790c('0x3e')](_0x4608f5);})[_0x790c('0x23')](function(_0x261c5d){_0x3a3fbb[_0x790c('0x3f')]=_0x261c5d;return _0x3a3fbb;})['then'](respondWithFilteredResult(_0xd860f4,_0x4608f5))[_0x790c('0x40')](handleError(_0xd860f4,null));})[_0x790c('0x40')](handleError(_0xd860f4,null));};exports['show']=function(_0x4166b2,_0x30d4e6){var _0x3e0f08={'raw':![],'where':{'id':_0x4166b2[_0x790c('0x41')]['id']}},_0x258051={};_0x258051[_0x790c('0x2d')]=_[_0x790c('0x2f')](db['CmCompany'][_0x790c('0x42')]);_0x258051[_0x790c('0x2e')]=_[_0x790c('0x2f')](_0x4166b2[_0x790c('0x2e')]);_0x258051[_0x790c('0x37')]=_[_0x790c('0x43')](_0x258051[_0x790c('0x2d')],_0x258051[_0x790c('0x2e')]);_0x3e0f08[_0x790c('0x30')]=_['intersection'](_0x258051['model'],qs[_0x790c('0x31')](_0x4166b2[_0x790c('0x2e')][_0x790c('0x31')]));_0x3e0f08['attributes']=_0x3e0f08[_0x790c('0x30')][_0x790c('0x32')]?_0x3e0f08[_0x790c('0x30')]:_0x258051[_0x790c('0x2d')];if(_0x4166b2[_0x790c('0x2e')][_0x790c('0x3d')]){_0x3e0f08[_0x790c('0x44')]=[{'all':!![]}];}_0x3e0f08=_[_0x790c('0x39')]({},_0x3e0f08,_0x4166b2[_0x790c('0x3b')]);return db[_0x790c('0x3c')][_0x790c('0x45')](_0x3e0f08)[_0x790c('0x23')](handleEntityNotFound(_0x30d4e6,null))[_0x790c('0x23')](respondWithResult(_0x30d4e6,null))[_0x790c('0x40')](handleError(_0x30d4e6,null));};exports[_0x790c('0x46')]=function(_0x2bac49,_0x5e84fb){return db[_0x790c('0x3c')]['create'](_0x2bac49[_0x790c('0x47')],{})[_0x790c('0x23')](function(_0x507ed5){var _0x2a0a1b=_0x2bac49['user'][_0x790c('0x25')]({'plain':!![]});if(!_0x2a0a1b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2a0a1b[_0x790c('0x48')]==='user'){var _0x5180d3=_0x507ed5[_0x790c('0x25')]({'plain':!![]});var _0x13efa1=_0x790c('0x26');return db[_0x790c('0x49')][_0x790c('0x45')]({'where':{'name':_0x13efa1,'userProfileId':_0x2a0a1b[_0x790c('0x4a')]},'raw':!![]})[_0x790c('0x23')](function(_0x4120c7){if(_0x4120c7&&_0x4120c7[_0x790c('0x4b')]===0x0){return db['UserProfileResource'][_0x790c('0x46')]({'name':_0x5180d3[_0x790c('0x29')],'resourceId':_0x5180d3['id'],'type':_0x4120c7[_0x790c('0x29')],'sectionId':_0x4120c7['id']},{})[_0x790c('0x23')](function(){return _0x507ed5;});}else{return _0x507ed5;}})[_0x790c('0x40')](function(_0x35d617){logger[_0x790c('0x27')](_0x790c('0x4c'),_0x35d617);throw _0x35d617;});}return _0x507ed5;})[_0x790c('0x23')](respondWithResult(_0x5e84fb,0xc9))[_0x790c('0x40')](handleError(_0x5e84fb,null));};exports['update']=function(_0x2b91f5,_0x5f4ca8){if(_0x2b91f5[_0x790c('0x47')]['id']){delete _0x2b91f5['body']['id'];}return db[_0x790c('0x3c')]['find']({'where':{'id':_0x2b91f5[_0x790c('0x41')]['id']}})['then'](handleEntityNotFound(_0x5f4ca8,null))[_0x790c('0x23')](saveUpdates(_0x2b91f5['body'],null))[_0x790c('0x23')](respondWithResult(_0x5f4ca8,null))['catch'](handleError(_0x5f4ca8,null));};exports[_0x790c('0x24')]=function(_0x33d468,_0x3a0ea4){return db['CmCompany'][_0x790c('0x45')]({'where':{'id':_0x33d468['params']['id']}})[_0x790c('0x23')](handleEntityNotFound(_0x3a0ea4,null))[_0x790c('0x23')](removeEntity(_0x3a0ea4,null))[_0x790c('0x40')](handleError(_0x3a0ea4,null));};exports['describe']=function(_0x3d1d27,_0x4dd197){return db[_0x790c('0x3c')][_0x790c('0x2c')]()[_0x790c('0x23')](respondWithResult(_0x4dd197,null))[_0x790c('0x40')](handleError(_0x4dd197,null));};exports['addContacts']=function(_0x1df2ae,_0x175c1,_0x36b711){return db['CmContact']['find']({'where':{'id':_0x1df2ae['params']['id']}})['then'](handleEntityNotFound(_0x175c1,null))['then'](function(_0x419bb5){if(_0x419bb5){return _0x419bb5[_0x790c('0x4d')](_0x1df2ae[_0x790c('0x47')][_0x790c('0x4e')],_[_0x790c('0x4f')](_0x1df2ae[_0x790c('0x47')],[_0x790c('0x4e'),'id'])||{});}})[_0x790c('0x23')](respondWithResult(_0x175c1,null))['catch'](handleError(_0x175c1,null));};exports['getContacts']=function(_0x515034,_0x439d97,_0x38a352){var _0x4e8d0d={};var _0xb11b29={};var _0x52d5c9;var _0x174138;return db[_0x790c('0x3c')][_0x790c('0x50')]({'where':{'id':_0x515034[_0x790c('0x41')]['id']}})[_0x790c('0x23')](handleEntityNotFound(_0x439d97,null))[_0x790c('0x23')](function(_0x59a14f){if(_0x59a14f){_0x52d5c9=_0x59a14f;_0xb11b29[_0x790c('0x2d')]=_[_0x790c('0x2f')](db[_0x790c('0x51')][_0x790c('0x42')]);_0xb11b29[_0x790c('0x2e')]=_['keys'](_0x515034[_0x790c('0x2e')]);_0xb11b29[_0x790c('0x37')]=_[_0x790c('0x43')](_0xb11b29[_0x790c('0x2d')],_0xb11b29[_0x790c('0x2e')]);_0x4e8d0d[_0x790c('0x30')]=_[_0x790c('0x43')](_0xb11b29[_0x790c('0x2d')],qs[_0x790c('0x31')](_0x515034[_0x790c('0x2e')]['fields']));_0x4e8d0d[_0x790c('0x30')]=_0x4e8d0d[_0x790c('0x30')]['length']?_0x4e8d0d['attributes']:_0xb11b29['model'];_0x4e8d0d[_0x790c('0x34')]=qs[_0x790c('0x35')](_0x515034['query']['sort']);_0x4e8d0d['where']=qs[_0x790c('0x37')](_[_0x790c('0x52')](_0x515034[_0x790c('0x2e')],_0xb11b29[_0x790c('0x37')]));if(_0x515034[_0x790c('0x2e')][_0x790c('0x38')]){_0x4e8d0d[_0x790c('0x36')]=_[_0x790c('0x39')](_0x4e8d0d['where'],{'$or':_[_0x790c('0x3a')](_0x4e8d0d[_0x790c('0x30')],function(_0x2cf82e){var _0x5b5787={};_0x5b5787[_0x2cf82e]={'$like':'%'+_0x515034['query'][_0x790c('0x38')]+'%'};return _0x5b5787;})});}_0x4e8d0d=_['merge']({},_0x4e8d0d,_0x515034[_0x790c('0x3b')]);return _0x52d5c9[_0x790c('0x53')](_0x4e8d0d);}})[_0x790c('0x23')](function(_0x35c753){if(_0x35c753){_0x174138=_0x35c753[_0x790c('0x32')];if(!_0x515034[_0x790c('0x2e')]['hasOwnProperty']('nolimit')){_0x4e8d0d[_0x790c('0x1a')]=qs[_0x790c('0x1a')](_0x515034[_0x790c('0x2e')][_0x790c('0x1a')]);_0x4e8d0d['offset']=qs[_0x790c('0x1c')](_0x515034[_0x790c('0x2e')][_0x790c('0x1c')]);}return _0x52d5c9[_0x790c('0x53')](_0x4e8d0d);}})[_0x790c('0x23')](function(_0x58f162){if(_0x58f162){return _0x58f162?{'count':_0x174138,'rows':_0x58f162}:null;}})[_0x790c('0x23')](respondWithResult(_0x439d97,null))[_0x790c('0x40')](handleError(_0x439d97,null));};