6fbe392bf6608430b267a4639266a7cd23d007dd
[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 _0x1792=['apply','reject','save','update','then','destroy','get','Companies','UserProfileResource','error','stack','name','send','index','CmCompany','describe','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','map','merge','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','body','addContacts','CmContact','omit','getContacts','filter','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range'];(function(_0x370f28,_0xb8cad9){var _0xe69f49=function(_0x373494){while(--_0x373494){_0x370f28['push'](_0x370f28['shift']());}};_0xe69f49(++_0xb8cad9);}(_0x1792,0x13e));var _0x2179=function(_0xffdec4,_0x322bec){_0xffdec4=_0xffdec4-0x0;var _0x479138=_0x1792[_0xffdec4];return _0x479138;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2179('0x0'));var zipdir=require(_0x2179('0x1'));var jsonpatch=require(_0x2179('0x2'));var rp=require(_0x2179('0x3'));var moment=require(_0x2179('0x4'));var BPromise=require(_0x2179('0x5'));var Mustache=require(_0x2179('0x6'));var util=require('util');var path=require(_0x2179('0x7'));var sox=require(_0x2179('0x8'));var csv=require(_0x2179('0x9'));var ejs=require(_0x2179('0xa'));var fs=require('fs');var fs_extra=require(_0x2179('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x2179('0xc'));var jsforce=require(_0x2179('0xd'));var deskjs=require(_0x2179('0xe'));var toCsv=require(_0x2179('0x9'));var querystring=require(_0x2179('0xf'));var Papa=require(_0x2179('0x10'));var Redis=require(_0x2179('0x11'));var authService=require(_0x2179('0x12'));var qs=require(_0x2179('0x13'));var as=require(_0x2179('0x14'));var hardwareService=require(_0x2179('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x2179('0x16'));var config=require(_0x2179('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x2179('0x18'))['db'];function respondWithStatusCode(_0x3e04c7,_0x398d51){_0x398d51=_0x398d51||0xcc;return function(_0x369cf1){if(_0x369cf1){return _0x3e04c7[_0x2179('0x19')](_0x398d51);}return _0x3e04c7[_0x2179('0x1a')](_0x398d51)['end']();};}function respondWithResult(_0x485998,_0x3e3e06){_0x3e3e06=_0x3e3e06||0xc8;return function(_0x253c33){if(_0x253c33){return _0x485998['status'](_0x3e3e06)[_0x2179('0x1b')](_0x253c33);}};}function respondWithFilteredResult(_0x30718b,_0x5b03fd){return function(_0x1d5b51){if(_0x1d5b51){var _0x51406d=typeof _0x5b03fd['offset']===_0x2179('0x1c')&&typeof _0x5b03fd[_0x2179('0x1d')]==='undefined';var _0x2ad6ce=_0x1d5b51[_0x2179('0x1e')];var _0x3d26d5=_0x51406d?0x0:_0x5b03fd[_0x2179('0x1f')];var _0x27728a=_0x51406d?_0x1d5b51['count']:_0x5b03fd[_0x2179('0x1f')]+_0x5b03fd['limit'];var _0x506c8c;if(_0x27728a>=_0x2ad6ce){_0x27728a=_0x2ad6ce;_0x506c8c=0xc8;}else{_0x506c8c=0xce;}_0x30718b[_0x2179('0x1a')](_0x506c8c);return _0x30718b[_0x2179('0x20')](_0x2179('0x21'),_0x3d26d5+'-'+_0x27728a+'/'+_0x2ad6ce)[_0x2179('0x1b')](_0x1d5b51);}return null;};}function patchUpdates(_0x11e942){return function(_0x133615){try{jsonpatch[_0x2179('0x22')](_0x133615,_0x11e942,!![]);}catch(_0xd3a594){return BPromise[_0x2179('0x23')](_0xd3a594);}return _0x133615[_0x2179('0x24')]();};}function saveUpdates(_0x326f3a,_0x36b18c){return function(_0x307683){if(_0x307683){return _0x307683[_0x2179('0x25')](_0x326f3a)[_0x2179('0x26')](function(_0x248a76){return _0x248a76;});}return null;};}function removeEntity(_0x4efe05,_0x2a70b3){return function(_0x16edf3){if(_0x16edf3){return _0x16edf3[_0x2179('0x27')]()[_0x2179('0x26')](function(){var _0x1e02ae=_0x16edf3[_0x2179('0x28')]({'plain':!![]});var _0x3fee3d=_0x2179('0x29');return db[_0x2179('0x2a')][_0x2179('0x27')]({'where':{'type':_0x3fee3d,'resourceId':_0x1e02ae['id']}})['then'](function(){return _0x16edf3;});})[_0x2179('0x26')](function(){_0x4efe05[_0x2179('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x47da90,_0x41e692){return function(_0x1d6bab){if(!_0x1d6bab){_0x47da90[_0x2179('0x19')](0x194);}return _0x1d6bab;};}function handleError(_0x450307,_0x164368){_0x164368=_0x164368||0x1f4;return function(_0x3842d5){logger[_0x2179('0x2b')](_0x3842d5[_0x2179('0x2c')]);if(_0x3842d5[_0x2179('0x2d')]){delete _0x3842d5[_0x2179('0x2d')];}_0x450307[_0x2179('0x1a')](_0x164368)[_0x2179('0x2e')](_0x3842d5);};}exports[_0x2179('0x2f')]=function(_0x4d39d9,_0x284bce){var _0x5d5c30={},_0x8850f={},_0x4a327c={'count':0x0,'rows':[]};return db[_0x2179('0x30')][_0x2179('0x31')]()[_0x2179('0x26')](function(_0x9dc379){_0x8850f[_0x2179('0x32')]=_[_0x2179('0x33')](_0x9dc379);_0x8850f[_0x2179('0x34')]=_[_0x2179('0x33')](_0x4d39d9['query']);_0x8850f[_0x2179('0x35')]=_[_0x2179('0x36')](_0x8850f[_0x2179('0x32')],_0x8850f[_0x2179('0x34')]);_0x5d5c30[_0x2179('0x37')]=_[_0x2179('0x36')](_0x8850f[_0x2179('0x32')],qs['fields'](_0x4d39d9['query'][_0x2179('0x38')]));_0x5d5c30[_0x2179('0x37')]=_0x5d5c30[_0x2179('0x37')][_0x2179('0x39')]?_0x5d5c30[_0x2179('0x37')]:_0x8850f[_0x2179('0x32')];if(!_0x4d39d9['query'][_0x2179('0x3a')](_0x2179('0x3b'))){_0x5d5c30[_0x2179('0x1d')]=qs[_0x2179('0x1d')](_0x4d39d9[_0x2179('0x34')][_0x2179('0x1d')]);_0x5d5c30[_0x2179('0x1f')]=qs[_0x2179('0x1f')](_0x4d39d9[_0x2179('0x34')]['offset']);}_0x5d5c30[_0x2179('0x3c')]=qs[_0x2179('0x3d')](_0x4d39d9['query'][_0x2179('0x3d')]);_0x5d5c30['where']=qs['filters'](_['pick'](_0x4d39d9['query'],_0x8850f['filters']),_0x9dc379);if(_0x4d39d9[_0x2179('0x34')]['filter']){_0x5d5c30[_0x2179('0x3e')]=_['merge'](_0x5d5c30[_0x2179('0x3e')],{'$or':_[_0x2179('0x3f')](_0x5d5c30[_0x2179('0x37')],function(_0x3a6785){var _0x4f19eb={};_0x4f19eb[_0x3a6785]={'$like':'%'+_0x4d39d9[_0x2179('0x34')]['filter']+'%'};return _0x4f19eb;})});}_0x5d5c30=_[_0x2179('0x40')]({},_0x5d5c30,_0x4d39d9[_0x2179('0x41')]);var _0x381c1c={'where':_0x5d5c30[_0x2179('0x3e')]};return db[_0x2179('0x30')][_0x2179('0x1e')](_0x381c1c)[_0x2179('0x26')](function(_0x294ea2){_0x4a327c['count']=_0x294ea2;if(_0x4d39d9[_0x2179('0x34')][_0x2179('0x42')]){_0x5d5c30[_0x2179('0x43')]=[{'all':!![]}];}return db['CmCompany'][_0x2179('0x44')](_0x5d5c30);})[_0x2179('0x26')](function(_0x56aed7){_0x4a327c[_0x2179('0x45')]=_0x56aed7;return _0x4a327c;})[_0x2179('0x26')](respondWithFilteredResult(_0x284bce,_0x5d5c30))['catch'](handleError(_0x284bce,null));})[_0x2179('0x46')](handleError(_0x284bce,null));};exports[_0x2179('0x47')]=function(_0xcb48aa,_0x7da24f){var _0x399376={'raw':![],'where':{'id':_0xcb48aa[_0x2179('0x48')]['id']}},_0x11d69e={};_0x11d69e[_0x2179('0x32')]=_['keys'](db['CmCompany'][_0x2179('0x49')]);_0x11d69e[_0x2179('0x34')]=_[_0x2179('0x33')](_0xcb48aa[_0x2179('0x34')]);_0x11d69e['filters']=_[_0x2179('0x36')](_0x11d69e['model'],_0x11d69e[_0x2179('0x34')]);_0x399376['attributes']=_[_0x2179('0x36')](_0x11d69e[_0x2179('0x32')],qs[_0x2179('0x38')](_0xcb48aa[_0x2179('0x34')][_0x2179('0x38')]));_0x399376['attributes']=_0x399376[_0x2179('0x37')][_0x2179('0x39')]?_0x399376[_0x2179('0x37')]:_0x11d69e[_0x2179('0x32')];if(_0xcb48aa['query']['includeAll']){_0x399376['include']=[{'all':!![]}];}_0x399376=_['merge']({},_0x399376,_0xcb48aa[_0x2179('0x41')]);return db['CmCompany'][_0x2179('0x4a')](_0x399376)[_0x2179('0x26')](handleEntityNotFound(_0x7da24f,null))[_0x2179('0x26')](respondWithResult(_0x7da24f,null))[_0x2179('0x46')](handleError(_0x7da24f,null));};exports[_0x2179('0x4b')]=function(_0x190d3e,_0x44b218){return db[_0x2179('0x30')]['create'](_0x190d3e['body'],{})[_0x2179('0x26')](function(_0x3ce598){var _0x263c1c=_0x190d3e['user']['get']({'plain':!![]});if(!_0x263c1c)throw new Error(_0x2179('0x4c'));if(_0x263c1c[_0x2179('0x4d')]===_0x2179('0x4e')){var _0x527960=_0x3ce598[_0x2179('0x28')]({'plain':!![]});var _0x5e5c94=_0x2179('0x29');return db[_0x2179('0x4f')][_0x2179('0x4a')]({'where':{'name':_0x5e5c94,'userProfileId':_0x263c1c[_0x2179('0x50')]},'raw':!![]})[_0x2179('0x26')](function(_0x3165c5){if(_0x3165c5&&_0x3165c5[_0x2179('0x51')]===0x0){return db[_0x2179('0x2a')][_0x2179('0x4b')]({'name':_0x527960[_0x2179('0x2d')],'resourceId':_0x527960['id'],'type':_0x3165c5['name'],'sectionId':_0x3165c5['id']},{})[_0x2179('0x26')](function(){return _0x3ce598;});}else{return _0x3ce598;}})[_0x2179('0x46')](function(_0x54fd34){logger[_0x2179('0x2b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x54fd34);throw _0x54fd34;});}return _0x3ce598;})[_0x2179('0x26')](respondWithResult(_0x44b218,0xc9))['catch'](handleError(_0x44b218,null));};exports[_0x2179('0x25')]=function(_0xa66223,_0x4b06c9){if(_0xa66223['body']['id']){delete _0xa66223[_0x2179('0x52')]['id'];}return db[_0x2179('0x30')][_0x2179('0x4a')]({'where':{'id':_0xa66223[_0x2179('0x48')]['id']}})[_0x2179('0x26')](handleEntityNotFound(_0x4b06c9,null))[_0x2179('0x26')](saveUpdates(_0xa66223[_0x2179('0x52')],null))['then'](respondWithResult(_0x4b06c9,null))[_0x2179('0x46')](handleError(_0x4b06c9,null));};exports[_0x2179('0x27')]=function(_0x5ae61f,_0x12a9e6){return db[_0x2179('0x30')][_0x2179('0x4a')]({'where':{'id':_0x5ae61f['params']['id']}})[_0x2179('0x26')](handleEntityNotFound(_0x12a9e6,null))[_0x2179('0x26')](removeEntity(_0x12a9e6,null))[_0x2179('0x46')](handleError(_0x12a9e6,null));};exports['describe']=function(_0x37f9c2,_0x3778da){return db[_0x2179('0x30')][_0x2179('0x31')]()[_0x2179('0x26')](respondWithResult(_0x3778da,null))['catch'](handleError(_0x3778da,null));};exports[_0x2179('0x53')]=function(_0x20cd0d,_0x7d54c5,_0xe11728){return db[_0x2179('0x54')][_0x2179('0x4a')]({'where':{'id':_0x20cd0d['params']['id']}})[_0x2179('0x26')](handleEntityNotFound(_0x7d54c5,null))[_0x2179('0x26')](function(_0x325f4f){if(_0x325f4f){return _0x325f4f['addContacts'](_0x20cd0d[_0x2179('0x52')]['ids'],_[_0x2179('0x55')](_0x20cd0d[_0x2179('0x52')],['ids','id'])||{});}})[_0x2179('0x26')](respondWithResult(_0x7d54c5,null))[_0x2179('0x46')](handleError(_0x7d54c5,null));};exports[_0x2179('0x56')]=function(_0x1deb5c,_0x42aaef,_0x47f9ae){var _0x21f6ae={};var _0x3554bd={};var _0x149168;var _0x21ad93;return db['CmCompany']['findOne']({'where':{'id':_0x1deb5c[_0x2179('0x48')]['id']}})[_0x2179('0x26')](handleEntityNotFound(_0x42aaef,null))[_0x2179('0x26')](function(_0x2780b0){if(_0x2780b0){_0x149168=_0x2780b0;_0x3554bd[_0x2179('0x32')]=_['keys'](db[_0x2179('0x54')]['rawAttributes']);_0x3554bd['query']=_['keys'](_0x1deb5c[_0x2179('0x34')]);_0x3554bd['filters']=_[_0x2179('0x36')](_0x3554bd[_0x2179('0x32')],_0x3554bd['query']);_0x21f6ae['attributes']=_[_0x2179('0x36')](_0x3554bd['model'],qs[_0x2179('0x38')](_0x1deb5c[_0x2179('0x34')][_0x2179('0x38')]));_0x21f6ae['attributes']=_0x21f6ae[_0x2179('0x37')][_0x2179('0x39')]?_0x21f6ae[_0x2179('0x37')]:_0x3554bd[_0x2179('0x32')];_0x21f6ae[_0x2179('0x3c')]=qs[_0x2179('0x3d')](_0x1deb5c[_0x2179('0x34')][_0x2179('0x3d')]);_0x21f6ae['where']=qs['filters'](_['pick'](_0x1deb5c[_0x2179('0x34')],_0x3554bd['filters']));if(_0x1deb5c[_0x2179('0x34')][_0x2179('0x57')]){_0x21f6ae[_0x2179('0x3e')]=_['merge'](_0x21f6ae[_0x2179('0x3e')],{'$or':_[_0x2179('0x3f')](_0x21f6ae[_0x2179('0x37')],function(_0x4945e1){var _0x30bf8a={};_0x30bf8a[_0x4945e1]={'$like':'%'+_0x1deb5c[_0x2179('0x34')][_0x2179('0x57')]+'%'};return _0x30bf8a;})});}_0x21f6ae=_[_0x2179('0x40')]({},_0x21f6ae,_0x1deb5c[_0x2179('0x41')]);return _0x149168[_0x2179('0x56')](_0x21f6ae);}})[_0x2179('0x26')](function(_0x402498){if(_0x402498){_0x21ad93=_0x402498[_0x2179('0x39')];if(!_0x1deb5c[_0x2179('0x34')][_0x2179('0x3a')](_0x2179('0x3b'))){_0x21f6ae[_0x2179('0x1d')]=qs['limit'](_0x1deb5c['query'][_0x2179('0x1d')]);_0x21f6ae[_0x2179('0x1f')]=qs[_0x2179('0x1f')](_0x1deb5c[_0x2179('0x34')][_0x2179('0x1f')]);}return _0x149168[_0x2179('0x56')](_0x21f6ae);}})[_0x2179('0x26')](function(_0x1cc9ee){if(_0x1cc9ee){return _0x1cc9ee?{'count':_0x21ad93,'rows':_0x1cc9ee}:null;}})[_0x2179('0x26')](respondWithResult(_0x42aaef,null))[_0x2179('0x46')](handleError(_0x42aaef,null));};