026e2089930fdde9741db9a8313ed5a92a1ced08
[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 _0xc001=['get','Companies','UserProfileResource','error','stack','name','send','CmCompany','describe','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','merge','map','filter','options','count','includeAll','include','findAll','rows','catch','show','rawAttributes','length','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','addContacts','CmContact','omit','ids','findOne','getContacts','nolimit','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','ejs','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','limit','set','Content-Range','apply','reject','destroy','then'];(function(_0x4ac500,_0x300eb3){var _0x4a15c3=function(_0x3d0003){while(--_0x3d0003){_0x4ac500['push'](_0x4ac500['shift']());}};_0x4a15c3(++_0x300eb3);}(_0xc001,0x8a));var _0x1c00=function(_0x31dd70,_0x203ac4){_0x31dd70=_0x31dd70-0x0;var _0x49cf30=_0xc001[_0x31dd70];return _0x49cf30;};'use strict';var pdf=require(_0x1c00('0x0'));var emlformat=require(_0x1c00('0x1'));var rimraf=require(_0x1c00('0x2'));var zipdir=require(_0x1c00('0x3'));var jsonpatch=require(_0x1c00('0x4'));var rp=require(_0x1c00('0x5'));var moment=require(_0x1c00('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x1c00('0x7'));var util=require(_0x1c00('0x8'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x1c00('0x9'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x1c00('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x1c00('0xb'));var toCsv=require(_0x1c00('0xc'));var querystring=require(_0x1c00('0xd'));var Papa=require(_0x1c00('0xe'));var Redis=require(_0x1c00('0xf'));var authService=require(_0x1c00('0x10'));var qs=require(_0x1c00('0x11'));var as=require(_0x1c00('0x12'));var hardwareService=require(_0x1c00('0x13'));var logger=require(_0x1c00('0x14'))('api');var utils=require(_0x1c00('0x15'));var config=require(_0x1c00('0x16'));var db=require(_0x1c00('0x17'))['db'];function respondWithStatusCode(_0x16e8ed,_0x1482d6){_0x1482d6=_0x1482d6||0xcc;return function(_0x17d31b){if(_0x17d31b){return _0x16e8ed[_0x1c00('0x18')](_0x1482d6);}return _0x16e8ed['status'](_0x1482d6)[_0x1c00('0x19')]();};}function respondWithResult(_0x35ff39,_0x5d806c){_0x5d806c=_0x5d806c||0xc8;return function(_0x4d1bac){if(_0x4d1bac){return _0x35ff39[_0x1c00('0x1a')](_0x5d806c)[_0x1c00('0x1b')](_0x4d1bac);}};}function respondWithFilteredResult(_0x4350cf,_0x317978){return function(_0x1a066a){if(_0x1a066a){var _0x556134=_0x1a066a['count'],_0x1614b1=_0x317978[_0x1c00('0x1c')],_0x19c937=_0x317978[_0x1c00('0x1c')]+_0x317978[_0x1c00('0x1d')],_0x5a9175;if(_0x19c937>=_0x556134){_0x19c937=_0x556134;_0x5a9175=0xc8;}else{_0x5a9175=0xce;}_0x4350cf[_0x1c00('0x1a')](_0x5a9175);return _0x4350cf[_0x1c00('0x1e')](_0x1c00('0x1f'),_0x1614b1+'-'+_0x19c937+'/'+_0x556134)['json'](_0x1a066a);}return null;};}function patchUpdates(_0x11bdd4){return function(_0x515b00){try{jsonpatch[_0x1c00('0x20')](_0x515b00,_0x11bdd4,!![]);}catch(_0x4c888a){return BPromise[_0x1c00('0x21')](_0x4c888a);}return _0x515b00['save']();};}function saveUpdates(_0x570dd4,_0x24ad29){return function(_0x4f5870){if(_0x4f5870){return _0x4f5870['update'](_0x570dd4)['then'](function(_0x3cce68){return _0x3cce68;});}return null;};}function removeEntity(_0x4a3f8b,_0x459b73){return function(_0x2c652e){if(_0x2c652e){return _0x2c652e[_0x1c00('0x22')]()[_0x1c00('0x23')](function(){var _0x419849=_0x2c652e[_0x1c00('0x24')]({'plain':!![]});var _0x8d9b90=_0x1c00('0x25');return db[_0x1c00('0x26')][_0x1c00('0x22')]({'where':{'type':_0x8d9b90,'resourceId':_0x419849['id']}})['then'](function(){return _0x2c652e;});})[_0x1c00('0x23')](function(){_0x4a3f8b[_0x1c00('0x1a')](0xcc)[_0x1c00('0x19')]();});}};}function handleEntityNotFound(_0x17c116,_0x39996e){return function(_0x378988){if(!_0x378988){_0x17c116[_0x1c00('0x18')](0x194);}return _0x378988;};}function handleError(_0x59db9e,_0x3c01b3){_0x3c01b3=_0x3c01b3||0x1f4;return function(_0x2e015a){logger[_0x1c00('0x27')](_0x2e015a[_0x1c00('0x28')]);if(_0x2e015a[_0x1c00('0x29')]){delete _0x2e015a[_0x1c00('0x29')];}_0x59db9e[_0x1c00('0x1a')](_0x3c01b3)[_0x1c00('0x2a')](_0x2e015a);};}exports['index']=function(_0x5b6c44,_0x1fce2a){var _0x596acc={},_0x231dea={},_0x2f68ef={'count':0x0,'rows':[]};return db[_0x1c00('0x2b')][_0x1c00('0x2c')]()[_0x1c00('0x23')](function(_0x4be7e){_0x231dea[_0x1c00('0x2d')]=_[_0x1c00('0x2e')](_0x4be7e);_0x231dea[_0x1c00('0x2f')]=_[_0x1c00('0x2e')](_0x5b6c44[_0x1c00('0x2f')]);_0x231dea[_0x1c00('0x30')]=_[_0x1c00('0x31')](_0x231dea[_0x1c00('0x2d')],_0x231dea[_0x1c00('0x2f')]);_0x596acc[_0x1c00('0x32')]=_[_0x1c00('0x31')](_0x231dea[_0x1c00('0x2d')],qs[_0x1c00('0x33')](_0x5b6c44[_0x1c00('0x2f')][_0x1c00('0x33')]));_0x596acc[_0x1c00('0x32')]=_0x596acc[_0x1c00('0x32')]['length']?_0x596acc[_0x1c00('0x32')]:_0x231dea[_0x1c00('0x2d')];if(!_0x5b6c44[_0x1c00('0x2f')][_0x1c00('0x34')]('nolimit')){_0x596acc[_0x1c00('0x1d')]=qs[_0x1c00('0x1d')](_0x5b6c44[_0x1c00('0x2f')]['limit']);_0x596acc[_0x1c00('0x1c')]=qs[_0x1c00('0x1c')](_0x5b6c44['query'][_0x1c00('0x1c')]);}_0x596acc[_0x1c00('0x35')]=qs[_0x1c00('0x36')](_0x5b6c44[_0x1c00('0x2f')]['sort']);_0x596acc[_0x1c00('0x37')]=qs[_0x1c00('0x30')](_[_0x1c00('0x38')](_0x5b6c44[_0x1c00('0x2f')],_0x231dea[_0x1c00('0x30')]),_0x4be7e);if(_0x5b6c44[_0x1c00('0x2f')]['filter']){_0x596acc[_0x1c00('0x37')]=_[_0x1c00('0x39')](_0x596acc['where'],{'$or':_[_0x1c00('0x3a')](_0x596acc[_0x1c00('0x32')],function(_0x4f95bf){var _0x27e802={};_0x27e802[_0x4f95bf]={'$like':'%'+_0x5b6c44[_0x1c00('0x2f')][_0x1c00('0x3b')]+'%'};return _0x27e802;})});}_0x596acc=_['merge']({},_0x596acc,_0x5b6c44[_0x1c00('0x3c')]);var _0x1486f8={'where':_0x596acc['where']};return db[_0x1c00('0x2b')][_0x1c00('0x3d')](_0x1486f8)['then'](function(_0x5b57b9){_0x2f68ef['count']=_0x5b57b9;if(_0x5b6c44['query'][_0x1c00('0x3e')]){_0x596acc[_0x1c00('0x3f')]=[{'all':!![]}];}return db[_0x1c00('0x2b')][_0x1c00('0x40')](_0x596acc);})[_0x1c00('0x23')](function(_0x22758a){_0x2f68ef[_0x1c00('0x41')]=_0x22758a;return _0x2f68ef;})[_0x1c00('0x23')](respondWithFilteredResult(_0x1fce2a,_0x596acc))[_0x1c00('0x42')](handleError(_0x1fce2a,null));})['catch'](handleError(_0x1fce2a,null));};exports[_0x1c00('0x43')]=function(_0x25fd15,_0x43b2a3){var _0x3e93e3={'raw':![],'where':{'id':_0x25fd15['params']['id']}},_0xb0c88a={};_0xb0c88a[_0x1c00('0x2d')]=_[_0x1c00('0x2e')](db['CmCompany'][_0x1c00('0x44')]);_0xb0c88a[_0x1c00('0x2f')]=_[_0x1c00('0x2e')](_0x25fd15[_0x1c00('0x2f')]);_0xb0c88a[_0x1c00('0x30')]=_[_0x1c00('0x31')](_0xb0c88a[_0x1c00('0x2d')],_0xb0c88a[_0x1c00('0x2f')]);_0x3e93e3[_0x1c00('0x32')]=_[_0x1c00('0x31')](_0xb0c88a[_0x1c00('0x2d')],qs[_0x1c00('0x33')](_0x25fd15[_0x1c00('0x2f')][_0x1c00('0x33')]));_0x3e93e3[_0x1c00('0x32')]=_0x3e93e3[_0x1c00('0x32')][_0x1c00('0x45')]?_0x3e93e3[_0x1c00('0x32')]:_0xb0c88a[_0x1c00('0x2d')];if(_0x25fd15[_0x1c00('0x2f')]['includeAll']){_0x3e93e3['include']=[{'all':!![]}];}_0x3e93e3=_[_0x1c00('0x39')]({},_0x3e93e3,_0x25fd15[_0x1c00('0x3c')]);return db[_0x1c00('0x2b')]['find'](_0x3e93e3)[_0x1c00('0x23')](handleEntityNotFound(_0x43b2a3,null))[_0x1c00('0x23')](respondWithResult(_0x43b2a3,null))[_0x1c00('0x42')](handleError(_0x43b2a3,null));};exports['create']=function(_0x234513,_0x44c7b9){return db['CmCompany'][_0x1c00('0x46')](_0x234513[_0x1c00('0x47')],{})[_0x1c00('0x23')](function(_0x4a0471){var _0x506d2f=_0x234513[_0x1c00('0x48')]['get']({'plain':!![]});if(!_0x506d2f)throw new Error(_0x1c00('0x49'));if(_0x506d2f['role']===_0x1c00('0x48')){var _0x1e2062=_0x4a0471['get']({'plain':!![]});var _0x172603=_0x1c00('0x25');return db['UserProfileSection'][_0x1c00('0x4a')]({'where':{'name':_0x172603,'userProfileId':_0x506d2f[_0x1c00('0x4b')]},'raw':!![]})[_0x1c00('0x23')](function(_0x15d810){if(_0x15d810&&_0x15d810[_0x1c00('0x4c')]===0x0){return db[_0x1c00('0x26')][_0x1c00('0x46')]({'name':_0x1e2062[_0x1c00('0x29')],'resourceId':_0x1e2062['id'],'type':_0x15d810['name'],'sectionId':_0x15d810['id']},{})[_0x1c00('0x23')](function(){return _0x4a0471;});}else{return _0x4a0471;}})[_0x1c00('0x42')](function(_0x1267cb){logger[_0x1c00('0x27')](_0x1c00('0x4d'),_0x1267cb);throw _0x1267cb;});}return _0x4a0471;})[_0x1c00('0x23')](respondWithResult(_0x44c7b9,0xc9))[_0x1c00('0x42')](handleError(_0x44c7b9,null));};exports[_0x1c00('0x4e')]=function(_0x2910fa,_0x178249){if(_0x2910fa[_0x1c00('0x47')]['id']){delete _0x2910fa[_0x1c00('0x47')]['id'];}return db[_0x1c00('0x2b')][_0x1c00('0x4a')]({'where':{'id':_0x2910fa['params']['id']}})['then'](handleEntityNotFound(_0x178249,null))[_0x1c00('0x23')](saveUpdates(_0x2910fa['body'],null))['then'](respondWithResult(_0x178249,null))[_0x1c00('0x42')](handleError(_0x178249,null));};exports[_0x1c00('0x22')]=function(_0x4b9b6c,_0x4c81b8){return db[_0x1c00('0x2b')]['find']({'where':{'id':_0x4b9b6c[_0x1c00('0x4f')]['id']}})['then'](handleEntityNotFound(_0x4c81b8,null))[_0x1c00('0x23')](removeEntity(_0x4c81b8,null))[_0x1c00('0x42')](handleError(_0x4c81b8,null));};exports[_0x1c00('0x2c')]=function(_0x37f5fc,_0xfe5bac){return db[_0x1c00('0x2b')]['describe']()['then'](respondWithResult(_0xfe5bac,null))['catch'](handleError(_0xfe5bac,null));};exports[_0x1c00('0x50')]=function(_0x5a83dc,_0x56ab14,_0x41ef5f){return db[_0x1c00('0x51')][_0x1c00('0x4a')]({'where':{'id':_0x5a83dc['params']['id']}})['then'](handleEntityNotFound(_0x56ab14,null))[_0x1c00('0x23')](function(_0x4f00d7){if(_0x4f00d7){return _0x4f00d7[_0x1c00('0x50')](_0x5a83dc[_0x1c00('0x47')]['ids'],_[_0x1c00('0x52')](_0x5a83dc[_0x1c00('0x47')],[_0x1c00('0x53'),'id'])||{});}})['then'](respondWithResult(_0x56ab14,null))['catch'](handleError(_0x56ab14,null));};exports['getContacts']=function(_0x413589,_0x30b91b,_0x6d57fa){var _0x3553e3={};var _0x3f6028={};var _0x581370;var _0x21e991;return db[_0x1c00('0x2b')][_0x1c00('0x54')]({'where':{'id':_0x413589['params']['id']}})[_0x1c00('0x23')](handleEntityNotFound(_0x30b91b,null))['then'](function(_0xb22256){if(_0xb22256){_0x581370=_0xb22256;_0x3f6028[_0x1c00('0x2d')]=_[_0x1c00('0x2e')](db[_0x1c00('0x51')][_0x1c00('0x44')]);_0x3f6028[_0x1c00('0x2f')]=_[_0x1c00('0x2e')](_0x413589['query']);_0x3f6028[_0x1c00('0x30')]=_[_0x1c00('0x31')](_0x3f6028[_0x1c00('0x2d')],_0x3f6028[_0x1c00('0x2f')]);_0x3553e3[_0x1c00('0x32')]=_['intersection'](_0x3f6028[_0x1c00('0x2d')],qs[_0x1c00('0x33')](_0x413589['query'][_0x1c00('0x33')]));_0x3553e3[_0x1c00('0x32')]=_0x3553e3[_0x1c00('0x32')][_0x1c00('0x45')]?_0x3553e3[_0x1c00('0x32')]:_0x3f6028[_0x1c00('0x2d')];_0x3553e3[_0x1c00('0x35')]=qs[_0x1c00('0x36')](_0x413589[_0x1c00('0x2f')][_0x1c00('0x36')]);_0x3553e3[_0x1c00('0x37')]=qs[_0x1c00('0x30')](_[_0x1c00('0x38')](_0x413589[_0x1c00('0x2f')],_0x3f6028['filters']));if(_0x413589[_0x1c00('0x2f')]['filter']){_0x3553e3[_0x1c00('0x37')]=_['merge'](_0x3553e3[_0x1c00('0x37')],{'$or':_['map'](_0x3553e3[_0x1c00('0x32')],function(_0xbb33a9){var _0x488172={};_0x488172[_0xbb33a9]={'$like':'%'+_0x413589['query']['filter']+'%'};return _0x488172;})});}_0x3553e3=_[_0x1c00('0x39')]({},_0x3553e3,_0x413589[_0x1c00('0x3c')]);return _0x581370[_0x1c00('0x55')](_0x3553e3);}})[_0x1c00('0x23')](function(_0x5e1b07){if(_0x5e1b07){_0x21e991=_0x5e1b07[_0x1c00('0x45')];if(!_0x413589[_0x1c00('0x2f')][_0x1c00('0x34')](_0x1c00('0x56'))){_0x3553e3[_0x1c00('0x1d')]=qs[_0x1c00('0x1d')](_0x413589[_0x1c00('0x2f')][_0x1c00('0x1d')]);_0x3553e3[_0x1c00('0x1c')]=qs['offset'](_0x413589[_0x1c00('0x2f')]['offset']);}return _0x581370['getContacts'](_0x3553e3);}})['then'](function(_0x153c9a){if(_0x153c9a){return _0x153c9a?{'count':_0x21e991,'rows':_0x153c9a}:null;}})['then'](respondWithResult(_0x30b91b,null))[_0x1c00('0x42')](handleError(_0x30b91b,null));};