Built motion from commit 9d1906d1.|2.5.40
[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 _0x312b=['../../config/environment','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','save','update','then','destroy','get','UserProfileResource','stack','name','send','index','CmCompany','describe','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','map','filter','options','includeAll','findAll','catch','show','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','Companies','UserProfileSection','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','addContacts','ids','getContacts','findOne','CmContact','rawAttributes','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','desk.js','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/utils'];(function(_0xa56922,_0x3dc32e){var _0x175115=function(_0x28f10e){while(--_0x28f10e){_0xa56922['push'](_0xa56922['shift']());}};_0x175115(++_0x3dc32e);}(_0x312b,0x1ce));var _0xb312=function(_0x47f1bd,_0x2806cc){_0x47f1bd=_0x47f1bd-0x0;var _0x4f5684=_0x312b[_0x47f1bd];return _0x4f5684;};'use strict';var emlformat=require(_0xb312('0x0'));var rimraf=require(_0xb312('0x1'));var zipdir=require(_0xb312('0x2'));var jsonpatch=require(_0xb312('0x3'));var rp=require('request-promise');var moment=require(_0xb312('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xb312('0x5'));var util=require(_0xb312('0x6'));var path=require('path');var sox=require(_0xb312('0x7'));var csv=require(_0xb312('0x8'));var ejs=require(_0xb312('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb312('0xa'));var squel=require(_0xb312('0xb'));var crypto=require(_0xb312('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xb312('0xd'));var toCsv=require(_0xb312('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xb312('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xb312('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb312('0x10'))('api');var utils=require(_0xb312('0x11'));var config=require(_0xb312('0x12'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x577de3,_0x5eb367){_0x5eb367=_0x5eb367||0xcc;return function(_0x917f92){if(_0x917f92){return _0x577de3[_0xb312('0x13')](_0x5eb367);}return _0x577de3[_0xb312('0x14')](_0x5eb367)[_0xb312('0x15')]();};}function respondWithResult(_0x261d03,_0x3b2909){_0x3b2909=_0x3b2909||0xc8;return function(_0x530b5f){if(_0x530b5f){return _0x261d03['status'](_0x3b2909)[_0xb312('0x16')](_0x530b5f);}};}function respondWithFilteredResult(_0x3f6fa1,_0x2aefe4){return function(_0x5b1d6a){if(_0x5b1d6a){var _0x59496e=typeof _0x2aefe4[_0xb312('0x17')]==='undefined'&&typeof _0x2aefe4[_0xb312('0x18')]===_0xb312('0x19');var _0x3ec7ac=_0x5b1d6a[_0xb312('0x1a')];var _0x205900=_0x59496e?0x0:_0x2aefe4['offset'];var _0x25c6df=_0x59496e?_0x5b1d6a['count']:_0x2aefe4['offset']+_0x2aefe4[_0xb312('0x18')];var _0x1ef526;if(_0x25c6df>=_0x3ec7ac){_0x25c6df=_0x3ec7ac;_0x1ef526=0xc8;}else{_0x1ef526=0xce;}_0x3f6fa1[_0xb312('0x14')](_0x1ef526);return _0x3f6fa1[_0xb312('0x1b')](_0xb312('0x1c'),_0x205900+'-'+_0x25c6df+'/'+_0x3ec7ac)[_0xb312('0x16')](_0x5b1d6a);}return null;};}function patchUpdates(_0x3dcbf8){return function(_0x11f8f7){try{jsonpatch[_0xb312('0x1d')](_0x11f8f7,_0x3dcbf8,!![]);}catch(_0x57f2ef){return BPromise['reject'](_0x57f2ef);}return _0x11f8f7[_0xb312('0x1e')]();};}function saveUpdates(_0x31fab3,_0xac9abe){return function(_0x5485ec){if(_0x5485ec){return _0x5485ec[_0xb312('0x1f')](_0x31fab3)[_0xb312('0x20')](function(_0x46627c){return _0x46627c;});}return null;};}function removeEntity(_0x312e9c,_0x19f6c8){return function(_0x36ab3d){if(_0x36ab3d){return _0x36ab3d[_0xb312('0x21')]()[_0xb312('0x20')](function(){var _0xbd8d3c=_0x36ab3d[_0xb312('0x22')]({'plain':!![]});var _0x530e35='Companies';return db[_0xb312('0x23')][_0xb312('0x21')]({'where':{'type':_0x530e35,'resourceId':_0xbd8d3c['id']}})[_0xb312('0x20')](function(){return _0x36ab3d;});})[_0xb312('0x20')](function(){_0x312e9c[_0xb312('0x14')](0xcc)[_0xb312('0x15')]();});}};}function handleEntityNotFound(_0x4539ab,_0x3afb60){return function(_0x584eb2){if(!_0x584eb2){_0x4539ab[_0xb312('0x13')](0x194);}return _0x584eb2;};}function handleError(_0x4465d0,_0x427b3d){_0x427b3d=_0x427b3d||0x1f4;return function(_0x1b865f){logger['error'](_0x1b865f[_0xb312('0x24')]);if(_0x1b865f[_0xb312('0x25')]){delete _0x1b865f[_0xb312('0x25')];}_0x4465d0[_0xb312('0x14')](_0x427b3d)[_0xb312('0x26')](_0x1b865f);};}exports[_0xb312('0x27')]=function(_0x492088,_0x18f5e4){var _0x2c4f3b={},_0x14c155={},_0x3d0e4a={'count':0x0,'rows':[]};return db[_0xb312('0x28')][_0xb312('0x29')]()['then'](function(_0x5c0830){_0x14c155[_0xb312('0x2a')]=_[_0xb312('0x2b')](_0x5c0830);_0x14c155[_0xb312('0x2c')]=_[_0xb312('0x2b')](_0x492088[_0xb312('0x2c')]);_0x14c155['filters']=_[_0xb312('0x2d')](_0x14c155['model'],_0x14c155[_0xb312('0x2c')]);_0x2c4f3b[_0xb312('0x2e')]=_[_0xb312('0x2d')](_0x14c155[_0xb312('0x2a')],qs[_0xb312('0x2f')](_0x492088[_0xb312('0x2c')][_0xb312('0x2f')]));_0x2c4f3b[_0xb312('0x2e')]=_0x2c4f3b[_0xb312('0x2e')][_0xb312('0x30')]?_0x2c4f3b[_0xb312('0x2e')]:_0x14c155[_0xb312('0x2a')];if(!_0x492088['query'][_0xb312('0x31')](_0xb312('0x32'))){_0x2c4f3b['limit']=qs[_0xb312('0x18')](_0x492088[_0xb312('0x2c')][_0xb312('0x18')]);_0x2c4f3b[_0xb312('0x17')]=qs[_0xb312('0x17')](_0x492088[_0xb312('0x2c')][_0xb312('0x17')]);}_0x2c4f3b[_0xb312('0x33')]=qs[_0xb312('0x34')](_0x492088[_0xb312('0x2c')][_0xb312('0x34')]);_0x2c4f3b[_0xb312('0x35')]=qs[_0xb312('0x36')](_[_0xb312('0x37')](_0x492088[_0xb312('0x2c')],_0x14c155[_0xb312('0x36')]),_0x5c0830);if(_0x492088[_0xb312('0x2c')]['filter']){_0x2c4f3b['where']=_[_0xb312('0x38')](_0x2c4f3b['where'],{'$or':_[_0xb312('0x39')](_0x2c4f3b['attributes'],function(_0x578d2d){var _0x23d7c8={};_0x23d7c8[_0x578d2d]={'$like':'%'+_0x492088[_0xb312('0x2c')][_0xb312('0x3a')]+'%'};return _0x23d7c8;})});}_0x2c4f3b=_['merge']({},_0x2c4f3b,_0x492088[_0xb312('0x3b')]);var _0x3cb7fe={'where':_0x2c4f3b['where']};return db['CmCompany']['count'](_0x3cb7fe)[_0xb312('0x20')](function(_0xa41a44){_0x3d0e4a[_0xb312('0x1a')]=_0xa41a44;if(_0x492088['query'][_0xb312('0x3c')]){_0x2c4f3b['include']=[{'all':!![]}];}return db['CmCompany'][_0xb312('0x3d')](_0x2c4f3b);})[_0xb312('0x20')](function(_0x82509d){_0x3d0e4a['rows']=_0x82509d;return _0x3d0e4a;})[_0xb312('0x20')](respondWithFilteredResult(_0x18f5e4,_0x2c4f3b))[_0xb312('0x3e')](handleError(_0x18f5e4,null));})[_0xb312('0x3e')](handleError(_0x18f5e4,null));};exports[_0xb312('0x3f')]=function(_0x2f956c,_0x1748d9){var _0x9e628c={'raw':![],'where':{'id':_0x2f956c['params']['id']}},_0x2d949f={};_0x2d949f[_0xb312('0x2a')]=_[_0xb312('0x2b')](db[_0xb312('0x28')]['rawAttributes']);_0x2d949f[_0xb312('0x2c')]=_[_0xb312('0x2b')](_0x2f956c[_0xb312('0x2c')]);_0x2d949f['filters']=_[_0xb312('0x2d')](_0x2d949f[_0xb312('0x2a')],_0x2d949f[_0xb312('0x2c')]);_0x9e628c[_0xb312('0x2e')]=_[_0xb312('0x2d')](_0x2d949f[_0xb312('0x2a')],qs[_0xb312('0x2f')](_0x2f956c[_0xb312('0x2c')][_0xb312('0x2f')]));_0x9e628c[_0xb312('0x2e')]=_0x9e628c[_0xb312('0x2e')][_0xb312('0x30')]?_0x9e628c[_0xb312('0x2e')]:_0x2d949f['model'];if(_0x2f956c[_0xb312('0x2c')]['includeAll']){_0x9e628c['include']=[{'all':!![]}];}_0x9e628c=_[_0xb312('0x38')]({},_0x9e628c,_0x2f956c[_0xb312('0x3b')]);return db[_0xb312('0x28')][_0xb312('0x40')](_0x9e628c)['then'](handleEntityNotFound(_0x1748d9,null))['then'](respondWithResult(_0x1748d9,null))[_0xb312('0x3e')](handleError(_0x1748d9,null));};exports[_0xb312('0x41')]=function(_0xb0a214,_0x5788f9){return db['CmCompany']['create'](_0xb0a214[_0xb312('0x42')],{})[_0xb312('0x20')](function(_0x1b7bf7){var _0x55ee91=_0xb0a214['user'][_0xb312('0x22')]({'plain':!![]});if(!_0x55ee91)throw new Error(_0xb312('0x43'));if(_0x55ee91['role']==='user'){var _0xd6a9f0=_0x1b7bf7[_0xb312('0x22')]({'plain':!![]});var _0x19ccdb=_0xb312('0x44');return db[_0xb312('0x45')][_0xb312('0x40')]({'where':{'name':_0x19ccdb,'userProfileId':_0x55ee91['userProfileId']},'raw':!![]})[_0xb312('0x20')](function(_0x4e1cd0){if(_0x4e1cd0&&_0x4e1cd0[_0xb312('0x46')]===0x0){return db[_0xb312('0x23')][_0xb312('0x41')]({'name':_0xd6a9f0[_0xb312('0x25')],'resourceId':_0xd6a9f0['id'],'type':_0x4e1cd0['name'],'sectionId':_0x4e1cd0['id']},{})[_0xb312('0x20')](function(){return _0x1b7bf7;});}else{return _0x1b7bf7;}})[_0xb312('0x3e')](function(_0x58b7b8){logger[_0xb312('0x47')](_0xb312('0x48'),_0x58b7b8);throw _0x58b7b8;});}return _0x1b7bf7;})[_0xb312('0x20')](respondWithResult(_0x5788f9,0xc9))['catch'](handleError(_0x5788f9,null));};exports[_0xb312('0x1f')]=function(_0x4ec8c7,_0xb2cdce){if(_0x4ec8c7[_0xb312('0x42')]['id']){delete _0x4ec8c7['body']['id'];}return db[_0xb312('0x28')][_0xb312('0x40')]({'where':{'id':_0x4ec8c7[_0xb312('0x49')]['id']}})[_0xb312('0x20')](handleEntityNotFound(_0xb2cdce,null))[_0xb312('0x20')](saveUpdates(_0x4ec8c7[_0xb312('0x42')],null))[_0xb312('0x20')](respondWithResult(_0xb2cdce,null))[_0xb312('0x3e')](handleError(_0xb2cdce,null));};exports['destroy']=function(_0x1c8b56,_0x219e08){return db[_0xb312('0x28')][_0xb312('0x40')]({'where':{'id':_0x1c8b56[_0xb312('0x49')]['id']}})[_0xb312('0x20')](handleEntityNotFound(_0x219e08,null))[_0xb312('0x20')](removeEntity(_0x219e08,null))['catch'](handleError(_0x219e08,null));};exports['describe']=function(_0x5dff05,_0x37b9a6){return db[_0xb312('0x28')][_0xb312('0x29')]()[_0xb312('0x20')](respondWithResult(_0x37b9a6,null))['catch'](handleError(_0x37b9a6,null));};exports[_0xb312('0x4a')]=function(_0xbd4218,_0x2887f4,_0x396e3a){return db['CmContact']['find']({'where':{'id':_0xbd4218[_0xb312('0x49')]['id']}})['then'](handleEntityNotFound(_0x2887f4,null))[_0xb312('0x20')](function(_0x4d28b8){if(_0x4d28b8){return _0x4d28b8['addContacts'](_0xbd4218['body']['ids'],_['omit'](_0xbd4218[_0xb312('0x42')],[_0xb312('0x4b'),'id'])||{});}})[_0xb312('0x20')](respondWithResult(_0x2887f4,null))[_0xb312('0x3e')](handleError(_0x2887f4,null));};exports[_0xb312('0x4c')]=function(_0x4bf030,_0x407f43,_0x2983f9){var _0x2ca313={};var _0x33b05={};var _0x52dcc6;var _0x10677e;return db[_0xb312('0x28')][_0xb312('0x4d')]({'where':{'id':_0x4bf030['params']['id']}})['then'](handleEntityNotFound(_0x407f43,null))[_0xb312('0x20')](function(_0x3fc34b){if(_0x3fc34b){_0x52dcc6=_0x3fc34b;_0x33b05['model']=_[_0xb312('0x2b')](db[_0xb312('0x4e')][_0xb312('0x4f')]);_0x33b05[_0xb312('0x2c')]=_['keys'](_0x4bf030[_0xb312('0x2c')]);_0x33b05[_0xb312('0x36')]=_['intersection'](_0x33b05['model'],_0x33b05['query']);_0x2ca313['attributes']=_[_0xb312('0x2d')](_0x33b05['model'],qs[_0xb312('0x2f')](_0x4bf030[_0xb312('0x2c')][_0xb312('0x2f')]));_0x2ca313['attributes']=_0x2ca313[_0xb312('0x2e')][_0xb312('0x30')]?_0x2ca313[_0xb312('0x2e')]:_0x33b05[_0xb312('0x2a')];_0x2ca313[_0xb312('0x33')]=qs['sort'](_0x4bf030[_0xb312('0x2c')][_0xb312('0x34')]);_0x2ca313['where']=qs['filters'](_['pick'](_0x4bf030['query'],_0x33b05[_0xb312('0x36')]));if(_0x4bf030[_0xb312('0x2c')]['filter']){_0x2ca313[_0xb312('0x35')]=_['merge'](_0x2ca313[_0xb312('0x35')],{'$or':_[_0xb312('0x39')](_0x2ca313[_0xb312('0x2e')],function(_0x740308){var _0x3381c3={};_0x3381c3[_0x740308]={'$like':'%'+_0x4bf030[_0xb312('0x2c')][_0xb312('0x3a')]+'%'};return _0x3381c3;})});}_0x2ca313=_['merge']({},_0x2ca313,_0x4bf030[_0xb312('0x3b')]);return _0x52dcc6[_0xb312('0x4c')](_0x2ca313);}})['then'](function(_0x2e2928){if(_0x2e2928){_0x10677e=_0x2e2928[_0xb312('0x30')];if(!_0x4bf030[_0xb312('0x2c')][_0xb312('0x31')](_0xb312('0x32'))){_0x2ca313['limit']=qs[_0xb312('0x18')](_0x4bf030['query']['limit']);_0x2ca313[_0xb312('0x17')]=qs[_0xb312('0x17')](_0x4bf030[_0xb312('0x2c')][_0xb312('0x17')]);}return _0x52dcc6[_0xb312('0x4c')](_0x2ca313);}})[_0xb312('0x20')](function(_0xf24261){if(_0xf24261){return _0xf24261?{'count':_0x10677e,'rows':_0xf24261}:null;}})[_0xb312('0x20')](respondWithResult(_0x407f43,null))['catch'](handleError(_0x407f43,null));};