531695c7d828f10cd1c38917a9650f71efe0018b
[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 _0x057e=['map','options','includeAll','include','findAll','rows','params','rawAttributes','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','autoAssociation','catch','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addContacts','CmContact','ids','omit','findOne','getContacts','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','reject','save','update','then','destroy','Companies','UserProfileResource','stack','name','index','CmCompany','describe','model','keys','filters','intersection','attributes','fields','query','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge'];(function(_0x2787fd,_0x495145){var _0x423eac=function(_0xcdb35a){while(--_0xcdb35a){_0x2787fd['push'](_0x2787fd['shift']());}};_0x423eac(++_0x495145);}(_0x057e,0xce));var _0xe057=function(_0x17d5f6,_0x4542e5){_0x17d5f6=_0x17d5f6-0x0;var _0xdf1ad9=_0x057e[_0x17d5f6];return _0xdf1ad9;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xe057('0x0'));var rimraf=require(_0xe057('0x1'));var zipdir=require(_0xe057('0x2'));var jsonpatch=require(_0xe057('0x3'));var rp=require(_0xe057('0x4'));var moment=require(_0xe057('0x5'));var BPromise=require(_0xe057('0x6'));var Mustache=require('mustache');var util=require(_0xe057('0x7'));var path=require(_0xe057('0x8'));var sox=require(_0xe057('0x9'));var csv=require(_0xe057('0xa'));var ejs=require(_0xe057('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0xe057('0xc'));var crypto=require(_0xe057('0xd'));var jsforce=require(_0xe057('0xe'));var deskjs=require(_0xe057('0xf'));var toCsv=require(_0xe057('0xa'));var querystring=require(_0xe057('0x10'));var Papa=require(_0xe057('0x11'));var Redis=require(_0xe057('0x12'));var authService=require(_0xe057('0x13'));var qs=require(_0xe057('0x14'));var as=require(_0xe057('0x15'));var hardwareService=require(_0xe057('0x16'));var logger=require('../../config/logger')(_0xe057('0x17'));var utils=require('../../config/utils');var config=require(_0xe057('0x18'));var licenseUtil=require(_0xe057('0x19'));var db=require(_0xe057('0x1a'))['db'];function respondWithStatusCode(_0x5dcfed,_0x58b2f5){_0x58b2f5=_0x58b2f5||0xcc;return function(_0x50ebed){if(_0x50ebed){return _0x5dcfed[_0xe057('0x1b')](_0x58b2f5);}return _0x5dcfed[_0xe057('0x1c')](_0x58b2f5)[_0xe057('0x1d')]();};}function respondWithResult(_0x26c0a6,_0x5cea4b){_0x5cea4b=_0x5cea4b||0xc8;return function(_0x213580){if(_0x213580){return _0x26c0a6[_0xe057('0x1c')](_0x5cea4b)[_0xe057('0x1e')](_0x213580);}};}function respondWithFilteredResult(_0x16c19d,_0x3518d5){return function(_0x3ef668){if(_0x3ef668){var _0x359e57=_0x3ef668[_0xe057('0x1f')],_0x3493f1=_0x3518d5['offset'],_0x50dd19=_0x3518d5[_0xe057('0x20')]+_0x3518d5[_0xe057('0x21')],_0x57b5cb;if(_0x50dd19>=_0x359e57){_0x50dd19=_0x359e57;_0x57b5cb=0xc8;}else{_0x57b5cb=0xce;}_0x16c19d[_0xe057('0x1c')](_0x57b5cb);return _0x16c19d[_0xe057('0x22')](_0xe057('0x23'),_0x3493f1+'-'+_0x50dd19+'/'+_0x359e57)[_0xe057('0x1e')](_0x3ef668);}return null;};}function patchUpdates(_0x1895c9){return function(_0x1e747f){try{jsonpatch['apply'](_0x1e747f,_0x1895c9,!![]);}catch(_0x3e7ee9){return BPromise[_0xe057('0x24')](_0x3e7ee9);}return _0x1e747f[_0xe057('0x25')]();};}function saveUpdates(_0x3fec1f,_0x13780e){return function(_0x37ccf7){if(_0x37ccf7){return _0x37ccf7[_0xe057('0x26')](_0x3fec1f)[_0xe057('0x27')](function(_0x5b0099){return _0x5b0099;});}return null;};}function removeEntity(_0x13d25a,_0x4c2b6d){return function(_0x342434){if(_0x342434){return _0x342434[_0xe057('0x28')]()['then'](function(){var _0xdfaaac=_0x342434['get']({'plain':!![]});var _0x4e853b=_0xe057('0x29');return db[_0xe057('0x2a')][_0xe057('0x28')]({'where':{'type':_0x4e853b,'resourceId':_0xdfaaac['id']}})[_0xe057('0x27')](function(){return _0x342434;});})[_0xe057('0x27')](function(){_0x13d25a[_0xe057('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4543e2,_0x1708ec){return function(_0xc5b34){if(!_0xc5b34){_0x4543e2['sendStatus'](0x194);}return _0xc5b34;};}function handleError(_0x530ac7,_0x4d9933){_0x4d9933=_0x4d9933||0x1f4;return function(_0x14b34d){logger['error'](_0x14b34d[_0xe057('0x2b')]);if(_0x14b34d[_0xe057('0x2c')]){delete _0x14b34d[_0xe057('0x2c')];}_0x530ac7['status'](_0x4d9933)['send'](_0x14b34d);};}exports[_0xe057('0x2d')]=function(_0x37eb5a,_0x141ac6){var _0x2f6ff0={},_0xefe801={},_0x406a2f={'count':0x0,'rows':[]};return db[_0xe057('0x2e')][_0xe057('0x2f')]()[_0xe057('0x27')](function(_0x2812c3){_0xefe801[_0xe057('0x30')]=_[_0xe057('0x31')](_0x2812c3);_0xefe801['query']=_['keys'](_0x37eb5a['query']);_0xefe801[_0xe057('0x32')]=_[_0xe057('0x33')](_0xefe801[_0xe057('0x30')],_0xefe801['query']);_0x2f6ff0[_0xe057('0x34')]=_[_0xe057('0x33')](_0xefe801[_0xe057('0x30')],qs[_0xe057('0x35')](_0x37eb5a[_0xe057('0x36')]['fields']));_0x2f6ff0['attributes']=_0x2f6ff0[_0xe057('0x34')][_0xe057('0x37')]?_0x2f6ff0[_0xe057('0x34')]:_0xefe801[_0xe057('0x30')];if(!_0x37eb5a['query'][_0xe057('0x38')](_0xe057('0x39'))){_0x2f6ff0[_0xe057('0x21')]=qs[_0xe057('0x21')](_0x37eb5a[_0xe057('0x36')][_0xe057('0x21')]);_0x2f6ff0['offset']=qs[_0xe057('0x20')](_0x37eb5a[_0xe057('0x36')][_0xe057('0x20')]);}_0x2f6ff0[_0xe057('0x3a')]=qs['sort'](_0x37eb5a[_0xe057('0x36')][_0xe057('0x3b')]);_0x2f6ff0[_0xe057('0x3c')]=qs['filters'](_[_0xe057('0x3d')](_0x37eb5a['query'],_0xefe801[_0xe057('0x32')]),_0x2812c3);if(_0x37eb5a['query'][_0xe057('0x3e')]){_0x2f6ff0['where']=_[_0xe057('0x3f')](_0x2f6ff0[_0xe057('0x3c')],{'$or':_[_0xe057('0x40')](_0x2f6ff0[_0xe057('0x34')],function(_0xa9f18a){var _0x227196={};_0x227196[_0xa9f18a]={'$like':'%'+_0x37eb5a[_0xe057('0x36')]['filter']+'%'};return _0x227196;})});}_0x2f6ff0=_[_0xe057('0x3f')]({},_0x2f6ff0,_0x37eb5a[_0xe057('0x41')]);var _0xf9c3fd={'where':_0x2f6ff0[_0xe057('0x3c')]};return db[_0xe057('0x2e')][_0xe057('0x1f')](_0xf9c3fd)['then'](function(_0x39f749){_0x406a2f[_0xe057('0x1f')]=_0x39f749;if(_0x37eb5a['query'][_0xe057('0x42')]){_0x2f6ff0[_0xe057('0x43')]=[{'all':!![]}];}return db[_0xe057('0x2e')][_0xe057('0x44')](_0x2f6ff0);})[_0xe057('0x27')](function(_0x31db05){_0x406a2f[_0xe057('0x45')]=_0x31db05;return _0x406a2f;})[_0xe057('0x27')](respondWithFilteredResult(_0x141ac6,_0x2f6ff0))['catch'](handleError(_0x141ac6,null));})['catch'](handleError(_0x141ac6,null));};exports['show']=function(_0x4fc256,_0x1fa66e){var _0x511e64={'raw':![],'where':{'id':_0x4fc256[_0xe057('0x46')]['id']}},_0x5d2ede={};_0x5d2ede[_0xe057('0x30')]=_['keys'](db['CmCompany'][_0xe057('0x47')]);_0x5d2ede[_0xe057('0x36')]=_[_0xe057('0x31')](_0x4fc256[_0xe057('0x36')]);_0x5d2ede['filters']=_['intersection'](_0x5d2ede[_0xe057('0x30')],_0x5d2ede[_0xe057('0x36')]);_0x511e64['attributes']=_[_0xe057('0x33')](_0x5d2ede['model'],qs[_0xe057('0x35')](_0x4fc256[_0xe057('0x36')]['fields']));_0x511e64[_0xe057('0x34')]=_0x511e64[_0xe057('0x34')]['length']?_0x511e64[_0xe057('0x34')]:_0x5d2ede[_0xe057('0x30')];if(_0x4fc256['query'][_0xe057('0x42')]){_0x511e64['include']=[{'all':!![]}];}_0x511e64=_[_0xe057('0x3f')]({},_0x511e64,_0x4fc256['options']);return db[_0xe057('0x2e')]['find'](_0x511e64)['then'](handleEntityNotFound(_0x1fa66e,null))['then'](respondWithResult(_0x1fa66e,null))['catch'](handleError(_0x1fa66e,null));};exports[_0xe057('0x48')]=function(_0x8eaf58,_0x2d8037){return db[_0xe057('0x2e')][_0xe057('0x48')](_0x8eaf58['body'],{})[_0xe057('0x27')](function(_0x41d6ff){var _0x203d3f=_0x8eaf58[_0xe057('0x49')][_0xe057('0x4a')]({'plain':!![]});if(!_0x203d3f)throw new Error(_0xe057('0x4b'));if(_0x203d3f[_0xe057('0x4c')]===_0xe057('0x49')){var _0x1ebb6d=_0x41d6ff[_0xe057('0x4a')]({'plain':!![]});var _0x4910b2='Companies';return db[_0xe057('0x4d')][_0xe057('0x4e')]({'where':{'name':_0x4910b2,'userProfileId':_0x203d3f['userProfileId']},'raw':!![]})[_0xe057('0x27')](function(_0x1c6e4a){if(_0x1c6e4a&&_0x1c6e4a[_0xe057('0x4f')]===0x0){return db[_0xe057('0x2a')][_0xe057('0x48')]({'name':_0x1ebb6d[_0xe057('0x2c')],'resourceId':_0x1ebb6d['id'],'type':_0x1c6e4a[_0xe057('0x2c')],'sectionId':_0x1c6e4a['id']},{})[_0xe057('0x27')](function(){return _0x41d6ff;});}else{return _0x41d6ff;}})[_0xe057('0x50')](function(_0x3de397){logger[_0xe057('0x51')](_0xe057('0x52'),_0x3de397);throw _0x3de397;});}return _0x41d6ff;})[_0xe057('0x27')](respondWithResult(_0x2d8037,0xc9))[_0xe057('0x50')](handleError(_0x2d8037,null));};exports[_0xe057('0x26')]=function(_0x13f1a6,_0x44cc64){if(_0x13f1a6[_0xe057('0x53')]['id']){delete _0x13f1a6[_0xe057('0x53')]['id'];}return db['CmCompany'][_0xe057('0x4e')]({'where':{'id':_0x13f1a6[_0xe057('0x46')]['id']}})[_0xe057('0x27')](handleEntityNotFound(_0x44cc64,null))[_0xe057('0x27')](saveUpdates(_0x13f1a6[_0xe057('0x53')],null))[_0xe057('0x27')](respondWithResult(_0x44cc64,null))[_0xe057('0x50')](handleError(_0x44cc64,null));};exports['destroy']=function(_0xf9c99,_0x2a6bc5){return db[_0xe057('0x2e')][_0xe057('0x4e')]({'where':{'id':_0xf9c99[_0xe057('0x46')]['id']}})[_0xe057('0x27')](handleEntityNotFound(_0x2a6bc5,null))[_0xe057('0x27')](removeEntity(_0x2a6bc5,null))['catch'](handleError(_0x2a6bc5,null));};exports['describe']=function(_0x24db40,_0x42e011){return db['CmCompany'][_0xe057('0x2f')]()[_0xe057('0x27')](respondWithResult(_0x42e011,null))[_0xe057('0x50')](handleError(_0x42e011,null));};exports[_0xe057('0x54')]=function(_0x32afcf,_0x43b856,_0x270365){return db[_0xe057('0x55')][_0xe057('0x4e')]({'where':{'id':_0x32afcf['params']['id']}})['then'](handleEntityNotFound(_0x43b856,null))['then'](function(_0x10dfc4){if(_0x10dfc4){return _0x10dfc4[_0xe057('0x54')](_0x32afcf[_0xe057('0x53')][_0xe057('0x56')],_[_0xe057('0x57')](_0x32afcf['body'],[_0xe057('0x56'),'id'])||{});}})[_0xe057('0x27')](respondWithResult(_0x43b856,null))[_0xe057('0x50')](handleError(_0x43b856,null));};exports['getContacts']=function(_0x4d670a,_0x54013c,_0x5bbeae){var _0x5a71b3={};var _0x1cb921={};var _0x57c77e;var _0x3fbf58;return db['CmCompany'][_0xe057('0x58')]({'where':{'id':_0x4d670a[_0xe057('0x46')]['id']}})[_0xe057('0x27')](handleEntityNotFound(_0x54013c,null))[_0xe057('0x27')](function(_0x1163f4){if(_0x1163f4){_0x57c77e=_0x1163f4;_0x1cb921['model']=_[_0xe057('0x31')](db[_0xe057('0x55')]['rawAttributes']);_0x1cb921[_0xe057('0x36')]=_[_0xe057('0x31')](_0x4d670a[_0xe057('0x36')]);_0x1cb921[_0xe057('0x32')]=_[_0xe057('0x33')](_0x1cb921['model'],_0x1cb921[_0xe057('0x36')]);_0x5a71b3[_0xe057('0x34')]=_[_0xe057('0x33')](_0x1cb921['model'],qs[_0xe057('0x35')](_0x4d670a['query']['fields']));_0x5a71b3[_0xe057('0x34')]=_0x5a71b3[_0xe057('0x34')][_0xe057('0x37')]?_0x5a71b3[_0xe057('0x34')]:_0x1cb921[_0xe057('0x30')];_0x5a71b3['order']=qs[_0xe057('0x3b')](_0x4d670a[_0xe057('0x36')][_0xe057('0x3b')]);_0x5a71b3['where']=qs[_0xe057('0x32')](_[_0xe057('0x3d')](_0x4d670a[_0xe057('0x36')],_0x1cb921['filters']));if(_0x4d670a[_0xe057('0x36')][_0xe057('0x3e')]){_0x5a71b3[_0xe057('0x3c')]=_['merge'](_0x5a71b3[_0xe057('0x3c')],{'$or':_[_0xe057('0x40')](_0x5a71b3[_0xe057('0x34')],function(_0x2eab6a){var _0xdb482e={};_0xdb482e[_0x2eab6a]={'$like':'%'+_0x4d670a[_0xe057('0x36')][_0xe057('0x3e')]+'%'};return _0xdb482e;})});}_0x5a71b3=_[_0xe057('0x3f')]({},_0x5a71b3,_0x4d670a[_0xe057('0x41')]);return _0x57c77e[_0xe057('0x59')](_0x5a71b3);}})[_0xe057('0x27')](function(_0x1643ea){if(_0x1643ea){_0x3fbf58=_0x1643ea[_0xe057('0x37')];if(!_0x4d670a[_0xe057('0x36')][_0xe057('0x38')](_0xe057('0x39'))){_0x5a71b3[_0xe057('0x21')]=qs['limit'](_0x4d670a[_0xe057('0x36')][_0xe057('0x21')]);_0x5a71b3['offset']=qs[_0xe057('0x20')](_0x4d670a[_0xe057('0x36')][_0xe057('0x20')]);}return _0x57c77e[_0xe057('0x59')](_0x5a71b3);}})[_0xe057('0x27')](function(_0x3b2b9c){if(_0x3b2b9c){return _0x3b2b9c?{'count':_0x3fbf58,'rows':_0x3b2b9c}:null;}})[_0xe057('0x27')](respondWithResult(_0x54013c,null))[_0xe057('0x50')](handleError(_0x54013c,null));};