Built motion from commit 1efd3d96.|2.6.31
[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 _0x96a5=['options','getContacts','zip-dir','fast-json-patch','moment','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','reject','save','then','destroy','UserProfileResource','error','stack','name','index','CmCompany','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','merge','filter','includeAll','findAll','rows','catch','params','rawAttributes','include','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','Companies','UserProfileSection','userProfileId','autoAssociation','update','describe','CmContact','addContacts','ids','omit','findOne','pick','map'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x96a5,0x1b0));var _0x596a=function(_0x22386b,_0x13ef9a){_0x22386b=_0x22386b-0x0;var _0x264264=_0x96a5[_0x22386b];return _0x264264;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x596a('0x0'));var jsonpatch=require(_0x596a('0x1'));var rp=require('request-promise');var moment=require(_0x596a('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x596a('0x3'));var path=require(_0x596a('0x4'));var sox=require(_0x596a('0x5'));var csv=require(_0x596a('0x6'));var ejs=require(_0x596a('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x596a('0x8'));var squel=require(_0x596a('0x9'));var crypto=require(_0x596a('0xa'));var jsforce=require(_0x596a('0xb'));var deskjs=require(_0x596a('0xc'));var toCsv=require(_0x596a('0x6'));var querystring=require(_0x596a('0xd'));var Papa=require(_0x596a('0xe'));var Redis=require(_0x596a('0xf'));var authService=require(_0x596a('0x10'));var qs=require(_0x596a('0x11'));var as=require(_0x596a('0x12'));var hardwareService=require(_0x596a('0x13'));var logger=require(_0x596a('0x14'))(_0x596a('0x15'));var utils=require(_0x596a('0x16'));var config=require(_0x596a('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x596a('0x18'))['db'];function respondWithStatusCode(_0x1f67bd,_0x4e5cdb){_0x4e5cdb=_0x4e5cdb||0xcc;return function(_0x443635){if(_0x443635){return _0x1f67bd[_0x596a('0x19')](_0x4e5cdb);}return _0x1f67bd['status'](_0x4e5cdb)[_0x596a('0x1a')]();};}function respondWithResult(_0x4d0497,_0x336a76){_0x336a76=_0x336a76||0xc8;return function(_0x844585){if(_0x844585){return _0x4d0497[_0x596a('0x1b')](_0x336a76)[_0x596a('0x1c')](_0x844585);}};}function respondWithFilteredResult(_0x5d26e2,_0x3d0090){return function(_0x65cbc5){if(_0x65cbc5){var _0x18508e=typeof _0x3d0090[_0x596a('0x1d')]==='undefined'&&typeof _0x3d0090[_0x596a('0x1e')]===_0x596a('0x1f');var _0x3d4f17=_0x65cbc5['count'];var _0xee4652=_0x18508e?0x0:_0x3d0090[_0x596a('0x1d')];var _0x2d2e55=_0x18508e?_0x65cbc5[_0x596a('0x20')]:_0x3d0090[_0x596a('0x1d')]+_0x3d0090[_0x596a('0x1e')];var _0x2ca15e;if(_0x2d2e55>=_0x3d4f17){_0x2d2e55=_0x3d4f17;_0x2ca15e=0xc8;}else{_0x2ca15e=0xce;}_0x5d26e2[_0x596a('0x1b')](_0x2ca15e);return _0x5d26e2[_0x596a('0x21')](_0x596a('0x22'),_0xee4652+'-'+_0x2d2e55+'/'+_0x3d4f17)[_0x596a('0x1c')](_0x65cbc5);}return null;};}function patchUpdates(_0x4a2b83){return function(_0xeab52e){try{jsonpatch['apply'](_0xeab52e,_0x4a2b83,!![]);}catch(_0x247803){return BPromise[_0x596a('0x23')](_0x247803);}return _0xeab52e[_0x596a('0x24')]();};}function saveUpdates(_0x3c7a4d,_0x236ad8){return function(_0x3e75c2){if(_0x3e75c2){return _0x3e75c2['update'](_0x3c7a4d)[_0x596a('0x25')](function(_0x162ea0){return _0x162ea0;});}return null;};}function removeEntity(_0x69be1a,_0x5178f1){return function(_0x37a7f7){if(_0x37a7f7){return _0x37a7f7[_0x596a('0x26')]()['then'](function(){var _0x5eb369=_0x37a7f7['get']({'plain':!![]});var _0x1c1891='Companies';return db[_0x596a('0x27')][_0x596a('0x26')]({'where':{'type':_0x1c1891,'resourceId':_0x5eb369['id']}})[_0x596a('0x25')](function(){return _0x37a7f7;});})[_0x596a('0x25')](function(){_0x69be1a['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x55e559,_0x36ad9c){return function(_0xca8979){if(!_0xca8979){_0x55e559[_0x596a('0x19')](0x194);}return _0xca8979;};}function handleError(_0x425bb9,_0x1134a1){_0x1134a1=_0x1134a1||0x1f4;return function(_0x2cc794){logger[_0x596a('0x28')](_0x2cc794[_0x596a('0x29')]);if(_0x2cc794[_0x596a('0x2a')]){delete _0x2cc794[_0x596a('0x2a')];}_0x425bb9[_0x596a('0x1b')](_0x1134a1)['send'](_0x2cc794);};}exports[_0x596a('0x2b')]=function(_0x3ca4b9,_0x338f41){var _0x25e698={},_0xf2ee2b={},_0x2fc774={'count':0x0,'rows':[]};return db[_0x596a('0x2c')]['describe']()[_0x596a('0x25')](function(_0x35c6e6){_0xf2ee2b[_0x596a('0x2d')]=_[_0x596a('0x2e')](_0x35c6e6);_0xf2ee2b[_0x596a('0x2f')]=_[_0x596a('0x2e')](_0x3ca4b9[_0x596a('0x2f')]);_0xf2ee2b[_0x596a('0x30')]=_[_0x596a('0x31')](_0xf2ee2b['model'],_0xf2ee2b[_0x596a('0x2f')]);_0x25e698[_0x596a('0x32')]=_[_0x596a('0x31')](_0xf2ee2b[_0x596a('0x2d')],qs[_0x596a('0x33')](_0x3ca4b9['query'][_0x596a('0x33')]));_0x25e698[_0x596a('0x32')]=_0x25e698['attributes'][_0x596a('0x34')]?_0x25e698[_0x596a('0x32')]:_0xf2ee2b['model'];if(!_0x3ca4b9[_0x596a('0x2f')][_0x596a('0x35')]('nolimit')){_0x25e698[_0x596a('0x1e')]=qs[_0x596a('0x1e')](_0x3ca4b9[_0x596a('0x2f')][_0x596a('0x1e')]);_0x25e698[_0x596a('0x1d')]=qs[_0x596a('0x1d')](_0x3ca4b9['query'][_0x596a('0x1d')]);}_0x25e698['order']=qs[_0x596a('0x36')](_0x3ca4b9[_0x596a('0x2f')]['sort']);_0x25e698[_0x596a('0x37')]=qs['filters'](_['pick'](_0x3ca4b9[_0x596a('0x2f')],_0xf2ee2b['filters']),_0x35c6e6);if(_0x3ca4b9[_0x596a('0x2f')]['filter']){_0x25e698[_0x596a('0x37')]=_[_0x596a('0x38')](_0x25e698[_0x596a('0x37')],{'$or':_['map'](_0x25e698[_0x596a('0x32')],function(_0x32ce2a){var _0x307014={};_0x307014[_0x32ce2a]={'$like':'%'+_0x3ca4b9[_0x596a('0x2f')][_0x596a('0x39')]+'%'};return _0x307014;})});}_0x25e698=_[_0x596a('0x38')]({},_0x25e698,_0x3ca4b9['options']);var _0x12aba0={'where':_0x25e698['where']};return db['CmCompany']['count'](_0x12aba0)[_0x596a('0x25')](function(_0x3cb454){_0x2fc774[_0x596a('0x20')]=_0x3cb454;if(_0x3ca4b9[_0x596a('0x2f')][_0x596a('0x3a')]){_0x25e698['include']=[{'all':!![]}];}return db[_0x596a('0x2c')][_0x596a('0x3b')](_0x25e698);})['then'](function(_0x4ca786){_0x2fc774[_0x596a('0x3c')]=_0x4ca786;return _0x2fc774;})[_0x596a('0x25')](respondWithFilteredResult(_0x338f41,_0x25e698))[_0x596a('0x3d')](handleError(_0x338f41,null));})[_0x596a('0x3d')](handleError(_0x338f41,null));};exports['show']=function(_0x418c54,_0x15d8b8){var _0x22e4f8={'raw':![],'where':{'id':_0x418c54[_0x596a('0x3e')]['id']}},_0x3a39d3={};_0x3a39d3[_0x596a('0x2d')]=_[_0x596a('0x2e')](db[_0x596a('0x2c')][_0x596a('0x3f')]);_0x3a39d3['query']=_['keys'](_0x418c54[_0x596a('0x2f')]);_0x3a39d3['filters']=_['intersection'](_0x3a39d3[_0x596a('0x2d')],_0x3a39d3[_0x596a('0x2f')]);_0x22e4f8[_0x596a('0x32')]=_['intersection'](_0x3a39d3[_0x596a('0x2d')],qs['fields'](_0x418c54[_0x596a('0x2f')][_0x596a('0x33')]));_0x22e4f8[_0x596a('0x32')]=_0x22e4f8[_0x596a('0x32')][_0x596a('0x34')]?_0x22e4f8[_0x596a('0x32')]:_0x3a39d3[_0x596a('0x2d')];if(_0x418c54[_0x596a('0x2f')][_0x596a('0x3a')]){_0x22e4f8[_0x596a('0x40')]=[{'all':!![]}];}_0x22e4f8=_['merge']({},_0x22e4f8,_0x418c54['options']);return db[_0x596a('0x2c')][_0x596a('0x41')](_0x22e4f8)[_0x596a('0x25')](handleEntityNotFound(_0x15d8b8,null))[_0x596a('0x25')](respondWithResult(_0x15d8b8,null))[_0x596a('0x3d')](handleError(_0x15d8b8,null));};exports[_0x596a('0x42')]=function(_0x38079d,_0x595ee8){return db[_0x596a('0x2c')][_0x596a('0x42')](_0x38079d[_0x596a('0x43')],{})[_0x596a('0x25')](function(_0x54d3c1){var _0xee697d=_0x38079d[_0x596a('0x44')][_0x596a('0x45')]({'plain':!![]});if(!_0xee697d)throw new Error(_0x596a('0x46'));if(_0xee697d['role']===_0x596a('0x44')){var _0x2b8554=_0x54d3c1['get']({'plain':!![]});var _0xb4deeb=_0x596a('0x47');return db[_0x596a('0x48')][_0x596a('0x41')]({'where':{'name':_0xb4deeb,'userProfileId':_0xee697d[_0x596a('0x49')]},'raw':!![]})['then'](function(_0x503e6f){if(_0x503e6f&&_0x503e6f[_0x596a('0x4a')]===0x0){return db[_0x596a('0x27')]['create']({'name':_0x2b8554['name'],'resourceId':_0x2b8554['id'],'type':_0x503e6f[_0x596a('0x2a')],'sectionId':_0x503e6f['id']},{})[_0x596a('0x25')](function(){return _0x54d3c1;});}else{return _0x54d3c1;}})[_0x596a('0x3d')](function(_0x3f19e0){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3f19e0);throw _0x3f19e0;});}return _0x54d3c1;})[_0x596a('0x25')](respondWithResult(_0x595ee8,0xc9))['catch'](handleError(_0x595ee8,null));};exports[_0x596a('0x4b')]=function(_0xe66302,_0x1a509e){if(_0xe66302[_0x596a('0x43')]['id']){delete _0xe66302[_0x596a('0x43')]['id'];}return db[_0x596a('0x2c')][_0x596a('0x41')]({'where':{'id':_0xe66302['params']['id']}})[_0x596a('0x25')](handleEntityNotFound(_0x1a509e,null))[_0x596a('0x25')](saveUpdates(_0xe66302[_0x596a('0x43')],null))[_0x596a('0x25')](respondWithResult(_0x1a509e,null))[_0x596a('0x3d')](handleError(_0x1a509e,null));};exports['destroy']=function(_0x3698a9,_0x5be07b){return db[_0x596a('0x2c')][_0x596a('0x41')]({'where':{'id':_0x3698a9[_0x596a('0x3e')]['id']}})[_0x596a('0x25')](handleEntityNotFound(_0x5be07b,null))[_0x596a('0x25')](removeEntity(_0x5be07b,null))[_0x596a('0x3d')](handleError(_0x5be07b,null));};exports[_0x596a('0x4c')]=function(_0x520c0d,_0xe6b1a){return db['CmCompany'][_0x596a('0x4c')]()[_0x596a('0x25')](respondWithResult(_0xe6b1a,null))[_0x596a('0x3d')](handleError(_0xe6b1a,null));};exports['addContacts']=function(_0x1c12f9,_0x556c95,_0x39d997){return db[_0x596a('0x4d')][_0x596a('0x41')]({'where':{'id':_0x1c12f9[_0x596a('0x3e')]['id']}})[_0x596a('0x25')](handleEntityNotFound(_0x556c95,null))[_0x596a('0x25')](function(_0x4e383c){if(_0x4e383c){return _0x4e383c[_0x596a('0x4e')](_0x1c12f9[_0x596a('0x43')][_0x596a('0x4f')],_[_0x596a('0x50')](_0x1c12f9[_0x596a('0x43')],['ids','id'])||{});}})['then'](respondWithResult(_0x556c95,null))[_0x596a('0x3d')](handleError(_0x556c95,null));};exports['getContacts']=function(_0x224b95,_0x16f445,_0x6d8231){var _0x594d28={};var _0x3dacba={};var _0x5083c9;var _0x2f4ff9;return db[_0x596a('0x2c')][_0x596a('0x51')]({'where':{'id':_0x224b95[_0x596a('0x3e')]['id']}})[_0x596a('0x25')](handleEntityNotFound(_0x16f445,null))['then'](function(_0x517c3f){if(_0x517c3f){_0x5083c9=_0x517c3f;_0x3dacba[_0x596a('0x2d')]=_[_0x596a('0x2e')](db['CmContact']['rawAttributes']);_0x3dacba[_0x596a('0x2f')]=_[_0x596a('0x2e')](_0x224b95[_0x596a('0x2f')]);_0x3dacba[_0x596a('0x30')]=_['intersection'](_0x3dacba['model'],_0x3dacba[_0x596a('0x2f')]);_0x594d28[_0x596a('0x32')]=_[_0x596a('0x31')](_0x3dacba[_0x596a('0x2d')],qs[_0x596a('0x33')](_0x224b95[_0x596a('0x2f')][_0x596a('0x33')]));_0x594d28[_0x596a('0x32')]=_0x594d28[_0x596a('0x32')][_0x596a('0x34')]?_0x594d28['attributes']:_0x3dacba[_0x596a('0x2d')];_0x594d28['order']=qs[_0x596a('0x36')](_0x224b95[_0x596a('0x2f')][_0x596a('0x36')]);_0x594d28[_0x596a('0x37')]=qs[_0x596a('0x30')](_[_0x596a('0x52')](_0x224b95['query'],_0x3dacba[_0x596a('0x30')]));if(_0x224b95[_0x596a('0x2f')][_0x596a('0x39')]){_0x594d28[_0x596a('0x37')]=_[_0x596a('0x38')](_0x594d28[_0x596a('0x37')],{'$or':_[_0x596a('0x53')](_0x594d28[_0x596a('0x32')],function(_0x4b0412){var _0x1e9452={};_0x1e9452[_0x4b0412]={'$like':'%'+_0x224b95[_0x596a('0x2f')][_0x596a('0x39')]+'%'};return _0x1e9452;})});}_0x594d28=_[_0x596a('0x38')]({},_0x594d28,_0x224b95[_0x596a('0x54')]);return _0x5083c9[_0x596a('0x55')](_0x594d28);}})[_0x596a('0x25')](function(_0x424cc1){if(_0x424cc1){_0x2f4ff9=_0x424cc1[_0x596a('0x34')];if(!_0x224b95['query'][_0x596a('0x35')]('nolimit')){_0x594d28[_0x596a('0x1e')]=qs['limit'](_0x224b95['query'][_0x596a('0x1e')]);_0x594d28['offset']=qs[_0x596a('0x1d')](_0x224b95[_0x596a('0x2f')][_0x596a('0x1d')]);}return _0x5083c9[_0x596a('0x55')](_0x594d28);}})[_0x596a('0x25')](function(_0x17b051){if(_0x17b051){return _0x17b051?{'count':_0x2f4ff9,'rows':_0x17b051}:null;}})[_0x596a('0x25')](respondWithResult(_0x16f445,null))['catch'](handleError(_0x16f445,null));};