Built motion from commit e6806ed6.|2.6.0
[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 _0xe988=['create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','addContacts','ids','omit','findOne','CmContact','rawAttributes','map','getContacts','eml-format','zip-dir','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','apply','then','destroy','get','Companies','UserProfileResource','end','error','stack','name','send','CmCompany','describe','keys','query','filters','attributes','intersection','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','findAll','rows','catch','params','include','find'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe988,0x16a));var _0x8e98=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0xe988[_0x5ddb1c];return _0x354adc;};'use strict';var emlformat=require(_0x8e98('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8e98('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8e98('0x2'));var moment=require('moment');var BPromise=require(_0x8e98('0x3'));var Mustache=require(_0x8e98('0x4'));var util=require('util');var path=require(_0x8e98('0x5'));var sox=require(_0x8e98('0x6'));var csv=require(_0x8e98('0x7'));var ejs=require(_0x8e98('0x8'));var fs=require('fs');var fs_extra=require(_0x8e98('0x9'));var _=require(_0x8e98('0xa'));var squel=require(_0x8e98('0xb'));var crypto=require(_0x8e98('0xc'));var jsforce=require(_0x8e98('0xd'));var deskjs=require(_0x8e98('0xe'));var toCsv=require(_0x8e98('0x7'));var querystring=require('querystring');var Papa=require(_0x8e98('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x8e98('0x10'));var as=require(_0x8e98('0x11'));var hardwareService=require(_0x8e98('0x12'));var logger=require(_0x8e98('0x13'))('api');var utils=require(_0x8e98('0x14'));var config=require(_0x8e98('0x15'));var licenseUtil=require(_0x8e98('0x16'));var db=require(_0x8e98('0x17'))['db'];function respondWithStatusCode(_0x547863,_0x39eb90){_0x39eb90=_0x39eb90||0xcc;return function(_0x2d2c38){if(_0x2d2c38){return _0x547863[_0x8e98('0x18')](_0x39eb90);}return _0x547863[_0x8e98('0x19')](_0x39eb90)['end']();};}function respondWithResult(_0x54233a,_0x4c3d1b){_0x4c3d1b=_0x4c3d1b||0xc8;return function(_0x19f427){if(_0x19f427){return _0x54233a[_0x8e98('0x19')](_0x4c3d1b)[_0x8e98('0x1a')](_0x19f427);}};}function respondWithFilteredResult(_0x2bd13e,_0xeb8e20){return function(_0x41bb05){if(_0x41bb05){var _0xefbfeb=typeof _0xeb8e20['offset']===_0x8e98('0x1b')&&typeof _0xeb8e20[_0x8e98('0x1c')]===_0x8e98('0x1b');var _0x4be4d8=_0x41bb05[_0x8e98('0x1d')];var _0x16a35f=_0xefbfeb?0x0:_0xeb8e20[_0x8e98('0x1e')];var _0x25fd51=_0xefbfeb?_0x41bb05['count']:_0xeb8e20[_0x8e98('0x1e')]+_0xeb8e20[_0x8e98('0x1c')];var _0xbfce85;if(_0x25fd51>=_0x4be4d8){_0x25fd51=_0x4be4d8;_0xbfce85=0xc8;}else{_0xbfce85=0xce;}_0x2bd13e[_0x8e98('0x19')](_0xbfce85);return _0x2bd13e['set']('Content-Range',_0x16a35f+'-'+_0x25fd51+'/'+_0x4be4d8)[_0x8e98('0x1a')](_0x41bb05);}return null;};}function patchUpdates(_0x42833d){return function(_0x46cbc7){try{jsonpatch[_0x8e98('0x1f')](_0x46cbc7,_0x42833d,!![]);}catch(_0x4ddb82){return BPromise['reject'](_0x4ddb82);}return _0x46cbc7['save']();};}function saveUpdates(_0x4483d9,_0x123f0a){return function(_0x5a59cd){if(_0x5a59cd){return _0x5a59cd['update'](_0x4483d9)[_0x8e98('0x20')](function(_0x119d95){return _0x119d95;});}return null;};}function removeEntity(_0x1da516,_0x1602e9){return function(_0x498d64){if(_0x498d64){return _0x498d64[_0x8e98('0x21')]()['then'](function(){var _0x5c715a=_0x498d64[_0x8e98('0x22')]({'plain':!![]});var _0x1ebd8b=_0x8e98('0x23');return db[_0x8e98('0x24')][_0x8e98('0x21')]({'where':{'type':_0x1ebd8b,'resourceId':_0x5c715a['id']}})['then'](function(){return _0x498d64;});})[_0x8e98('0x20')](function(){_0x1da516[_0x8e98('0x19')](0xcc)[_0x8e98('0x25')]();});}};}function handleEntityNotFound(_0x25b751,_0x2c2778){return function(_0xc33db){if(!_0xc33db){_0x25b751[_0x8e98('0x18')](0x194);}return _0xc33db;};}function handleError(_0x534b4a,_0xb8c709){_0xb8c709=_0xb8c709||0x1f4;return function(_0x4adb02){logger[_0x8e98('0x26')](_0x4adb02[_0x8e98('0x27')]);if(_0x4adb02[_0x8e98('0x28')]){delete _0x4adb02['name'];}_0x534b4a['status'](_0xb8c709)[_0x8e98('0x29')](_0x4adb02);};}exports['index']=function(_0x2e4ee9,_0x452b29){var _0x1024a7={},_0x15b8ad={},_0xee66c7={'count':0x0,'rows':[]};return db[_0x8e98('0x2a')][_0x8e98('0x2b')]()[_0x8e98('0x20')](function(_0x59bf26){_0x15b8ad['model']=_[_0x8e98('0x2c')](_0x59bf26);_0x15b8ad['query']=_['keys'](_0x2e4ee9[_0x8e98('0x2d')]);_0x15b8ad[_0x8e98('0x2e')]=_['intersection'](_0x15b8ad['model'],_0x15b8ad[_0x8e98('0x2d')]);_0x1024a7[_0x8e98('0x2f')]=_[_0x8e98('0x30')](_0x15b8ad[_0x8e98('0x31')],qs[_0x8e98('0x32')](_0x2e4ee9['query'][_0x8e98('0x32')]));_0x1024a7[_0x8e98('0x2f')]=_0x1024a7[_0x8e98('0x2f')][_0x8e98('0x33')]?_0x1024a7[_0x8e98('0x2f')]:_0x15b8ad[_0x8e98('0x31')];if(!_0x2e4ee9[_0x8e98('0x2d')][_0x8e98('0x34')](_0x8e98('0x35'))){_0x1024a7['limit']=qs[_0x8e98('0x1c')](_0x2e4ee9[_0x8e98('0x2d')]['limit']);_0x1024a7[_0x8e98('0x1e')]=qs[_0x8e98('0x1e')](_0x2e4ee9[_0x8e98('0x2d')][_0x8e98('0x1e')]);}_0x1024a7[_0x8e98('0x36')]=qs[_0x8e98('0x37')](_0x2e4ee9[_0x8e98('0x2d')][_0x8e98('0x37')]);_0x1024a7[_0x8e98('0x38')]=qs[_0x8e98('0x2e')](_[_0x8e98('0x39')](_0x2e4ee9['query'],_0x15b8ad[_0x8e98('0x2e')]),_0x59bf26);if(_0x2e4ee9['query'][_0x8e98('0x3a')]){_0x1024a7[_0x8e98('0x38')]=_[_0x8e98('0x3b')](_0x1024a7[_0x8e98('0x38')],{'$or':_['map'](_0x1024a7[_0x8e98('0x2f')],function(_0x3c4c59){var _0x2777aa={};_0x2777aa[_0x3c4c59]={'$like':'%'+_0x2e4ee9['query']['filter']+'%'};return _0x2777aa;})});}_0x1024a7=_[_0x8e98('0x3b')]({},_0x1024a7,_0x2e4ee9[_0x8e98('0x3c')]);var _0x295683={'where':_0x1024a7[_0x8e98('0x38')]};return db[_0x8e98('0x2a')][_0x8e98('0x1d')](_0x295683)['then'](function(_0x16e377){_0xee66c7[_0x8e98('0x1d')]=_0x16e377;if(_0x2e4ee9[_0x8e98('0x2d')][_0x8e98('0x3d')]){_0x1024a7['include']=[{'all':!![]}];}return db[_0x8e98('0x2a')][_0x8e98('0x3e')](_0x1024a7);})[_0x8e98('0x20')](function(_0x3fbd7e){_0xee66c7[_0x8e98('0x3f')]=_0x3fbd7e;return _0xee66c7;})[_0x8e98('0x20')](respondWithFilteredResult(_0x452b29,_0x1024a7))['catch'](handleError(_0x452b29,null));})[_0x8e98('0x40')](handleError(_0x452b29,null));};exports['show']=function(_0x38db48,_0x21b97c){var _0x552c21={'raw':![],'where':{'id':_0x38db48[_0x8e98('0x41')]['id']}},_0xc6f41c={};_0xc6f41c['model']=_[_0x8e98('0x2c')](db[_0x8e98('0x2a')]['rawAttributes']);_0xc6f41c[_0x8e98('0x2d')]=_[_0x8e98('0x2c')](_0x38db48['query']);_0xc6f41c['filters']=_[_0x8e98('0x30')](_0xc6f41c['model'],_0xc6f41c['query']);_0x552c21['attributes']=_[_0x8e98('0x30')](_0xc6f41c[_0x8e98('0x31')],qs[_0x8e98('0x32')](_0x38db48[_0x8e98('0x2d')]['fields']));_0x552c21[_0x8e98('0x2f')]=_0x552c21[_0x8e98('0x2f')][_0x8e98('0x33')]?_0x552c21[_0x8e98('0x2f')]:_0xc6f41c['model'];if(_0x38db48[_0x8e98('0x2d')][_0x8e98('0x3d')]){_0x552c21[_0x8e98('0x42')]=[{'all':!![]}];}_0x552c21=_[_0x8e98('0x3b')]({},_0x552c21,_0x38db48[_0x8e98('0x3c')]);return db[_0x8e98('0x2a')][_0x8e98('0x43')](_0x552c21)[_0x8e98('0x20')](handleEntityNotFound(_0x21b97c,null))[_0x8e98('0x20')](respondWithResult(_0x21b97c,null))['catch'](handleError(_0x21b97c,null));};exports[_0x8e98('0x44')]=function(_0x1ae48a,_0x28e5d8){return db['CmCompany'][_0x8e98('0x44')](_0x1ae48a[_0x8e98('0x45')],{})[_0x8e98('0x20')](function(_0xe13058){var _0xd37d57=_0x1ae48a[_0x8e98('0x46')][_0x8e98('0x22')]({'plain':!![]});if(!_0xd37d57)throw new Error(_0x8e98('0x47'));if(_0xd37d57[_0x8e98('0x48')]===_0x8e98('0x46')){var _0x4c45d8=_0xe13058['get']({'plain':!![]});var _0x2626ce=_0x8e98('0x23');return db[_0x8e98('0x49')][_0x8e98('0x43')]({'where':{'name':_0x2626ce,'userProfileId':_0xd37d57[_0x8e98('0x4a')]},'raw':!![]})[_0x8e98('0x20')](function(_0x52e38c){if(_0x52e38c&&_0x52e38c[_0x8e98('0x4b')]===0x0){return db[_0x8e98('0x24')][_0x8e98('0x44')]({'name':_0x4c45d8['name'],'resourceId':_0x4c45d8['id'],'type':_0x52e38c[_0x8e98('0x28')],'sectionId':_0x52e38c['id']},{})[_0x8e98('0x20')](function(){return _0xe13058;});}else{return _0xe13058;}})['catch'](function(_0x232b50){logger[_0x8e98('0x26')](_0x8e98('0x4c'),_0x232b50);throw _0x232b50;});}return _0xe13058;})['then'](respondWithResult(_0x28e5d8,0xc9))['catch'](handleError(_0x28e5d8,null));};exports[_0x8e98('0x4d')]=function(_0x5e277d,_0x298fda){if(_0x5e277d[_0x8e98('0x45')]['id']){delete _0x5e277d[_0x8e98('0x45')]['id'];}return db[_0x8e98('0x2a')][_0x8e98('0x43')]({'where':{'id':_0x5e277d[_0x8e98('0x41')]['id']}})[_0x8e98('0x20')](handleEntityNotFound(_0x298fda,null))['then'](saveUpdates(_0x5e277d[_0x8e98('0x45')],null))[_0x8e98('0x20')](respondWithResult(_0x298fda,null))['catch'](handleError(_0x298fda,null));};exports[_0x8e98('0x21')]=function(_0x283a01,_0x1c3906){return db['CmCompany']['find']({'where':{'id':_0x283a01[_0x8e98('0x41')]['id']}})[_0x8e98('0x20')](handleEntityNotFound(_0x1c3906,null))['then'](removeEntity(_0x1c3906,null))[_0x8e98('0x40')](handleError(_0x1c3906,null));};exports[_0x8e98('0x2b')]=function(_0x567f41,_0x4073f2){return db[_0x8e98('0x2a')][_0x8e98('0x2b')]()[_0x8e98('0x20')](respondWithResult(_0x4073f2,null))[_0x8e98('0x40')](handleError(_0x4073f2,null));};exports[_0x8e98('0x4e')]=function(_0x3e9848,_0x2016b4,_0x5d8a46){return db['CmContact'][_0x8e98('0x43')]({'where':{'id':_0x3e9848[_0x8e98('0x41')]['id']}})['then'](handleEntityNotFound(_0x2016b4,null))[_0x8e98('0x20')](function(_0x5f3308){if(_0x5f3308){return _0x5f3308[_0x8e98('0x4e')](_0x3e9848[_0x8e98('0x45')][_0x8e98('0x4f')],_[_0x8e98('0x50')](_0x3e9848['body'],['ids','id'])||{});}})[_0x8e98('0x20')](respondWithResult(_0x2016b4,null))[_0x8e98('0x40')](handleError(_0x2016b4,null));};exports['getContacts']=function(_0x1a61ee,_0x409dea,_0x35ff50){var _0x29bd3c={};var _0x26f715={};var _0x2f6157;var _0x3ce4e8;return db[_0x8e98('0x2a')][_0x8e98('0x51')]({'where':{'id':_0x1a61ee[_0x8e98('0x41')]['id']}})[_0x8e98('0x20')](handleEntityNotFound(_0x409dea,null))[_0x8e98('0x20')](function(_0x494b14){if(_0x494b14){_0x2f6157=_0x494b14;_0x26f715[_0x8e98('0x31')]=_[_0x8e98('0x2c')](db[_0x8e98('0x52')][_0x8e98('0x53')]);_0x26f715[_0x8e98('0x2d')]=_['keys'](_0x1a61ee['query']);_0x26f715[_0x8e98('0x2e')]=_[_0x8e98('0x30')](_0x26f715[_0x8e98('0x31')],_0x26f715[_0x8e98('0x2d')]);_0x29bd3c[_0x8e98('0x2f')]=_[_0x8e98('0x30')](_0x26f715[_0x8e98('0x31')],qs['fields'](_0x1a61ee[_0x8e98('0x2d')][_0x8e98('0x32')]));_0x29bd3c['attributes']=_0x29bd3c[_0x8e98('0x2f')][_0x8e98('0x33')]?_0x29bd3c[_0x8e98('0x2f')]:_0x26f715['model'];_0x29bd3c[_0x8e98('0x36')]=qs[_0x8e98('0x37')](_0x1a61ee[_0x8e98('0x2d')]['sort']);_0x29bd3c[_0x8e98('0x38')]=qs['filters'](_[_0x8e98('0x39')](_0x1a61ee[_0x8e98('0x2d')],_0x26f715[_0x8e98('0x2e')]));if(_0x1a61ee['query'][_0x8e98('0x3a')]){_0x29bd3c[_0x8e98('0x38')]=_[_0x8e98('0x3b')](_0x29bd3c['where'],{'$or':_[_0x8e98('0x54')](_0x29bd3c[_0x8e98('0x2f')],function(_0x3d8386){var _0x167c60={};_0x167c60[_0x3d8386]={'$like':'%'+_0x1a61ee[_0x8e98('0x2d')][_0x8e98('0x3a')]+'%'};return _0x167c60;})});}_0x29bd3c=_['merge']({},_0x29bd3c,_0x1a61ee[_0x8e98('0x3c')]);return _0x2f6157[_0x8e98('0x55')](_0x29bd3c);}})['then'](function(_0x3710a6){if(_0x3710a6){_0x3ce4e8=_0x3710a6[_0x8e98('0x33')];if(!_0x1a61ee[_0x8e98('0x2d')][_0x8e98('0x34')](_0x8e98('0x35'))){_0x29bd3c[_0x8e98('0x1c')]=qs[_0x8e98('0x1c')](_0x1a61ee[_0x8e98('0x2d')][_0x8e98('0x1c')]);_0x29bd3c[_0x8e98('0x1e')]=qs['offset'](_0x1a61ee[_0x8e98('0x2d')][_0x8e98('0x1e')]);}return _0x2f6157[_0x8e98('0x55')](_0x29bd3c);}})[_0x8e98('0x20')](function(_0x359d9f){if(_0x359d9f){return _0x359d9f?{'count':_0x3ce4e8,'rows':_0x359d9f}:null;}})[_0x8e98('0x20')](respondWithResult(_0x409dea,null))[_0x8e98('0x40')](handleError(_0x409dea,null));};