d630928c349e32dc1b90cdaf4b7fee633194b441
[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 _0x02c4=['UserProfileResource','end','error','stack','name','send','CmCompany','describe','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','includeAll','include','findAll','rows','catch','show','params','keys','length','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addContacts','CmContact','ids','omit','findOne','rawAttributes','order','map','options','getContacts','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','offset','count','set','Content-Range','apply','reject','update','then','destroy','Companies'];(function(_0x63a69b,_0x296888){var _0x425fa1=function(_0x117642){while(--_0x117642){_0x63a69b['push'](_0x63a69b['shift']());}};_0x425fa1(++_0x296888);}(_0x02c4,0x8e));var _0x402c=function(_0xbaf00f,_0x29358c){_0xbaf00f=_0xbaf00f-0x0;var _0x3b4415=_0x02c4[_0xbaf00f];return _0x3b4415;};'use strict';var emlformat=require(_0x402c('0x0'));var rimraf=require(_0x402c('0x1'));var zipdir=require(_0x402c('0x2'));var jsonpatch=require(_0x402c('0x3'));var rp=require('request-promise');var moment=require(_0x402c('0x4'));var BPromise=require(_0x402c('0x5'));var Mustache=require(_0x402c('0x6'));var util=require(_0x402c('0x7'));var path=require(_0x402c('0x8'));var sox=require(_0x402c('0x9'));var csv=require(_0x402c('0xa'));var ejs=require(_0x402c('0xb'));var fs=require('fs');var fs_extra=require(_0x402c('0xc'));var _=require(_0x402c('0xd'));var squel=require(_0x402c('0xe'));var crypto=require(_0x402c('0xf'));var jsforce=require(_0x402c('0x10'));var deskjs=require(_0x402c('0x11'));var toCsv=require(_0x402c('0xa'));var querystring=require('querystring');var Papa=require(_0x402c('0x12'));var Redis=require(_0x402c('0x13'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x402c('0x14'))(_0x402c('0x15'));var utils=require('../../config/utils');var config=require(_0x402c('0x16'));var licenseUtil=require(_0x402c('0x17'));var db=require(_0x402c('0x18'))['db'];function respondWithStatusCode(_0x2db9ca,_0xd98c05){_0xd98c05=_0xd98c05||0xcc;return function(_0x403ba6){if(_0x403ba6){return _0x2db9ca[_0x402c('0x19')](_0xd98c05);}return _0x2db9ca[_0x402c('0x1a')](_0xd98c05)['end']();};}function respondWithResult(_0x3ac856,_0x4c7931){_0x4c7931=_0x4c7931||0xc8;return function(_0xe95f75){if(_0xe95f75){return _0x3ac856[_0x402c('0x1a')](_0x4c7931)[_0x402c('0x1b')](_0xe95f75);}};}function respondWithFilteredResult(_0x49f657,_0x14c770){return function(_0x3fe6e9){if(_0x3fe6e9){var _0x47a7a8=typeof _0x14c770['offset']===_0x402c('0x1c')&&typeof _0x14c770[_0x402c('0x1d')]===_0x402c('0x1c');var _0xc511ed=_0x3fe6e9['count'];var _0x57fd1a=_0x47a7a8?0x0:_0x14c770[_0x402c('0x1e')];var _0xcc08c1=_0x47a7a8?_0x3fe6e9[_0x402c('0x1f')]:_0x14c770[_0x402c('0x1e')]+_0x14c770[_0x402c('0x1d')];var _0x476655;if(_0xcc08c1>=_0xc511ed){_0xcc08c1=_0xc511ed;_0x476655=0xc8;}else{_0x476655=0xce;}_0x49f657[_0x402c('0x1a')](_0x476655);return _0x49f657[_0x402c('0x20')](_0x402c('0x21'),_0x57fd1a+'-'+_0xcc08c1+'/'+_0xc511ed)[_0x402c('0x1b')](_0x3fe6e9);}return null;};}function patchUpdates(_0x3abf80){return function(_0x4bd321){try{jsonpatch[_0x402c('0x22')](_0x4bd321,_0x3abf80,!![]);}catch(_0x9e27a3){return BPromise[_0x402c('0x23')](_0x9e27a3);}return _0x4bd321['save']();};}function saveUpdates(_0x34d11a,_0x31493c){return function(_0x1fc8fb){if(_0x1fc8fb){return _0x1fc8fb[_0x402c('0x24')](_0x34d11a)[_0x402c('0x25')](function(_0x3e2565){return _0x3e2565;});}return null;};}function removeEntity(_0x58589c,_0x1df8d3){return function(_0x5dce42){if(_0x5dce42){return _0x5dce42[_0x402c('0x26')]()['then'](function(){var _0x53052b=_0x5dce42['get']({'plain':!![]});var _0x4d3a49=_0x402c('0x27');return db[_0x402c('0x28')][_0x402c('0x26')]({'where':{'type':_0x4d3a49,'resourceId':_0x53052b['id']}})[_0x402c('0x25')](function(){return _0x5dce42;});})[_0x402c('0x25')](function(){_0x58589c[_0x402c('0x1a')](0xcc)[_0x402c('0x29')]();});}};}function handleEntityNotFound(_0x47cb67,_0x41ca14){return function(_0x10ade3){if(!_0x10ade3){_0x47cb67[_0x402c('0x19')](0x194);}return _0x10ade3;};}function handleError(_0x442fb0,_0x30624c){_0x30624c=_0x30624c||0x1f4;return function(_0xdc54b8){logger[_0x402c('0x2a')](_0xdc54b8[_0x402c('0x2b')]);if(_0xdc54b8[_0x402c('0x2c')]){delete _0xdc54b8[_0x402c('0x2c')];}_0x442fb0['status'](_0x30624c)[_0x402c('0x2d')](_0xdc54b8);};}exports['index']=function(_0x4393f9,_0x1d67f4){var _0x52c794={},_0x1c632e={},_0x3b558e={'count':0x0,'rows':[]};return db[_0x402c('0x2e')][_0x402c('0x2f')]()[_0x402c('0x25')](function(_0x27183e){_0x1c632e[_0x402c('0x30')]=_['keys'](_0x27183e);_0x1c632e[_0x402c('0x31')]=_['keys'](_0x4393f9[_0x402c('0x31')]);_0x1c632e[_0x402c('0x32')]=_[_0x402c('0x33')](_0x1c632e['model'],_0x1c632e[_0x402c('0x31')]);_0x52c794[_0x402c('0x34')]=_[_0x402c('0x33')](_0x1c632e[_0x402c('0x30')],qs[_0x402c('0x35')](_0x4393f9['query'][_0x402c('0x35')]));_0x52c794['attributes']=_0x52c794[_0x402c('0x34')]['length']?_0x52c794[_0x402c('0x34')]:_0x1c632e['model'];if(!_0x4393f9[_0x402c('0x31')][_0x402c('0x36')](_0x402c('0x37'))){_0x52c794[_0x402c('0x1d')]=qs[_0x402c('0x1d')](_0x4393f9[_0x402c('0x31')]['limit']);_0x52c794[_0x402c('0x1e')]=qs[_0x402c('0x1e')](_0x4393f9[_0x402c('0x31')][_0x402c('0x1e')]);}_0x52c794['order']=qs[_0x402c('0x38')](_0x4393f9[_0x402c('0x31')]['sort']);_0x52c794[_0x402c('0x39')]=qs[_0x402c('0x32')](_[_0x402c('0x3a')](_0x4393f9[_0x402c('0x31')],_0x1c632e['filters']),_0x27183e);if(_0x4393f9['query'][_0x402c('0x3b')]){_0x52c794[_0x402c('0x39')]=_[_0x402c('0x3c')](_0x52c794[_0x402c('0x39')],{'$or':_['map'](_0x52c794[_0x402c('0x34')],function(_0x41adf4){var _0x1f1bbe={};_0x1f1bbe[_0x41adf4]={'$like':'%'+_0x4393f9['query'][_0x402c('0x3b')]+'%'};return _0x1f1bbe;})});}_0x52c794=_['merge']({},_0x52c794,_0x4393f9['options']);var _0x154381={'where':_0x52c794[_0x402c('0x39')]};return db[_0x402c('0x2e')]['count'](_0x154381)['then'](function(_0x40d70f){_0x3b558e[_0x402c('0x1f')]=_0x40d70f;if(_0x4393f9[_0x402c('0x31')][_0x402c('0x3d')]){_0x52c794[_0x402c('0x3e')]=[{'all':!![]}];}return db[_0x402c('0x2e')][_0x402c('0x3f')](_0x52c794);})['then'](function(_0x15890a){_0x3b558e[_0x402c('0x40')]=_0x15890a;return _0x3b558e;})[_0x402c('0x25')](respondWithFilteredResult(_0x1d67f4,_0x52c794))[_0x402c('0x41')](handleError(_0x1d67f4,null));})[_0x402c('0x41')](handleError(_0x1d67f4,null));};exports[_0x402c('0x42')]=function(_0x17ec26,_0x434d25){var _0x14eec1={'raw':![],'where':{'id':_0x17ec26[_0x402c('0x43')]['id']}},_0x1ce869={};_0x1ce869[_0x402c('0x30')]=_[_0x402c('0x44')](db[_0x402c('0x2e')]['rawAttributes']);_0x1ce869[_0x402c('0x31')]=_[_0x402c('0x44')](_0x17ec26[_0x402c('0x31')]);_0x1ce869[_0x402c('0x32')]=_['intersection'](_0x1ce869[_0x402c('0x30')],_0x1ce869[_0x402c('0x31')]);_0x14eec1[_0x402c('0x34')]=_[_0x402c('0x33')](_0x1ce869[_0x402c('0x30')],qs[_0x402c('0x35')](_0x17ec26['query'][_0x402c('0x35')]));_0x14eec1[_0x402c('0x34')]=_0x14eec1[_0x402c('0x34')][_0x402c('0x45')]?_0x14eec1[_0x402c('0x34')]:_0x1ce869['model'];if(_0x17ec26[_0x402c('0x31')][_0x402c('0x3d')]){_0x14eec1['include']=[{'all':!![]}];}_0x14eec1=_[_0x402c('0x3c')]({},_0x14eec1,_0x17ec26['options']);return db[_0x402c('0x2e')][_0x402c('0x46')](_0x14eec1)[_0x402c('0x25')](handleEntityNotFound(_0x434d25,null))[_0x402c('0x25')](respondWithResult(_0x434d25,null))[_0x402c('0x41')](handleError(_0x434d25,null));};exports[_0x402c('0x47')]=function(_0x456920,_0x3b6422){return db[_0x402c('0x2e')][_0x402c('0x47')](_0x456920['body'],{})[_0x402c('0x25')](function(_0x1dc8d5){var _0x55fe6a=_0x456920[_0x402c('0x48')]['get']({'plain':!![]});if(!_0x55fe6a)throw new Error(_0x402c('0x49'));if(_0x55fe6a[_0x402c('0x4a')]===_0x402c('0x48')){var _0x151948=_0x1dc8d5[_0x402c('0x4b')]({'plain':!![]});var _0x5c6e79=_0x402c('0x27');return db[_0x402c('0x4c')][_0x402c('0x46')]({'where':{'name':_0x5c6e79,'userProfileId':_0x55fe6a[_0x402c('0x4d')]},'raw':!![]})['then'](function(_0x25d183){if(_0x25d183&&_0x25d183[_0x402c('0x4e')]===0x0){return db[_0x402c('0x28')]['create']({'name':_0x151948[_0x402c('0x2c')],'resourceId':_0x151948['id'],'type':_0x25d183[_0x402c('0x2c')],'sectionId':_0x25d183['id']},{})[_0x402c('0x25')](function(){return _0x1dc8d5;});}else{return _0x1dc8d5;}})[_0x402c('0x41')](function(_0x5e0e74){logger[_0x402c('0x2a')](_0x402c('0x4f'),_0x5e0e74);throw _0x5e0e74;});}return _0x1dc8d5;})[_0x402c('0x25')](respondWithResult(_0x3b6422,0xc9))[_0x402c('0x41')](handleError(_0x3b6422,null));};exports[_0x402c('0x24')]=function(_0x180f86,_0x486bdf){if(_0x180f86['body']['id']){delete _0x180f86['body']['id'];}return db['CmCompany']['find']({'where':{'id':_0x180f86['params']['id']}})[_0x402c('0x25')](handleEntityNotFound(_0x486bdf,null))['then'](saveUpdates(_0x180f86[_0x402c('0x50')],null))[_0x402c('0x25')](respondWithResult(_0x486bdf,null))['catch'](handleError(_0x486bdf,null));};exports[_0x402c('0x26')]=function(_0x515a72,_0x41381a){return db[_0x402c('0x2e')][_0x402c('0x46')]({'where':{'id':_0x515a72[_0x402c('0x43')]['id']}})['then'](handleEntityNotFound(_0x41381a,null))[_0x402c('0x25')](removeEntity(_0x41381a,null))[_0x402c('0x41')](handleError(_0x41381a,null));};exports[_0x402c('0x2f')]=function(_0x5d38bc,_0x55acde){return db[_0x402c('0x2e')]['describe']()[_0x402c('0x25')](respondWithResult(_0x55acde,null))[_0x402c('0x41')](handleError(_0x55acde,null));};exports[_0x402c('0x51')]=function(_0x110cde,_0xfd4998,_0x3e6501){return db[_0x402c('0x52')][_0x402c('0x46')]({'where':{'id':_0x110cde[_0x402c('0x43')]['id']}})[_0x402c('0x25')](handleEntityNotFound(_0xfd4998,null))['then'](function(_0x6b15f1){if(_0x6b15f1){return _0x6b15f1[_0x402c('0x51')](_0x110cde[_0x402c('0x50')][_0x402c('0x53')],_[_0x402c('0x54')](_0x110cde[_0x402c('0x50')],['ids','id'])||{});}})[_0x402c('0x25')](respondWithResult(_0xfd4998,null))[_0x402c('0x41')](handleError(_0xfd4998,null));};exports['getContacts']=function(_0x3f3b1e,_0x58a963,_0x301e54){var _0xabd5ff={};var _0x4966b0={};var _0x4b1413;var _0x673aff;return db['CmCompany'][_0x402c('0x55')]({'where':{'id':_0x3f3b1e[_0x402c('0x43')]['id']}})['then'](handleEntityNotFound(_0x58a963,null))[_0x402c('0x25')](function(_0x24ed9a){if(_0x24ed9a){_0x4b1413=_0x24ed9a;_0x4966b0[_0x402c('0x30')]=_[_0x402c('0x44')](db[_0x402c('0x52')][_0x402c('0x56')]);_0x4966b0['query']=_['keys'](_0x3f3b1e[_0x402c('0x31')]);_0x4966b0[_0x402c('0x32')]=_[_0x402c('0x33')](_0x4966b0[_0x402c('0x30')],_0x4966b0[_0x402c('0x31')]);_0xabd5ff[_0x402c('0x34')]=_['intersection'](_0x4966b0['model'],qs[_0x402c('0x35')](_0x3f3b1e[_0x402c('0x31')][_0x402c('0x35')]));_0xabd5ff[_0x402c('0x34')]=_0xabd5ff[_0x402c('0x34')][_0x402c('0x45')]?_0xabd5ff[_0x402c('0x34')]:_0x4966b0[_0x402c('0x30')];_0xabd5ff[_0x402c('0x57')]=qs[_0x402c('0x38')](_0x3f3b1e[_0x402c('0x31')]['sort']);_0xabd5ff['where']=qs[_0x402c('0x32')](_[_0x402c('0x3a')](_0x3f3b1e['query'],_0x4966b0['filters']));if(_0x3f3b1e[_0x402c('0x31')][_0x402c('0x3b')]){_0xabd5ff[_0x402c('0x39')]=_['merge'](_0xabd5ff[_0x402c('0x39')],{'$or':_[_0x402c('0x58')](_0xabd5ff['attributes'],function(_0x2feb8f){var _0x630d66={};_0x630d66[_0x2feb8f]={'$like':'%'+_0x3f3b1e[_0x402c('0x31')][_0x402c('0x3b')]+'%'};return _0x630d66;})});}_0xabd5ff=_[_0x402c('0x3c')]({},_0xabd5ff,_0x3f3b1e[_0x402c('0x59')]);return _0x4b1413[_0x402c('0x5a')](_0xabd5ff);}})['then'](function(_0x3ba0bf){if(_0x3ba0bf){_0x673aff=_0x3ba0bf[_0x402c('0x45')];if(!_0x3f3b1e[_0x402c('0x31')][_0x402c('0x36')](_0x402c('0x37'))){_0xabd5ff[_0x402c('0x1d')]=qs[_0x402c('0x1d')](_0x3f3b1e[_0x402c('0x31')][_0x402c('0x1d')]);_0xabd5ff['offset']=qs['offset'](_0x3f3b1e[_0x402c('0x31')]['offset']);}return _0x4b1413[_0x402c('0x5a')](_0xabd5ff);}})[_0x402c('0x25')](function(_0xc34cf5){if(_0xc34cf5){return _0xc34cf5?{'count':_0x673aff,'rows':_0xc34cf5}:null;}})[_0x402c('0x25')](respondWithResult(_0x58a963,null))[_0x402c('0x41')](handleError(_0x58a963,null));};