Built motion from commit (unavailable).|2.5.7
[motion2.git] / server / api / variable / variable.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 _0x0c33=['find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','body','html-pdf','fast-json-patch','bluebird','mustache','util','sox','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','end','status','json','count','offset','set','Content-Range','apply','reject','save','update','then','get','Variables','UserProfileResource','destroy','stack','name','index','map','rawAttributes','fieldName','type','key','query','filters','model','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','VIRTUAL','merge','Variable','includeAll','include','rows','catch','show','params','keys','length'];(function(_0x1d8a85,_0x1121eb){var _0x4dcf5f=function(_0x1fe2e8){while(--_0x1fe2e8){_0x1d8a85['push'](_0x1d8a85['shift']());}};_0x4dcf5f(++_0x1121eb);}(_0x0c33,0x1e4));var _0x30c3=function(_0x50f392,_0x1d8441){_0x50f392=_0x50f392-0x0;var _0x5926f2=_0x0c33[_0x50f392];return _0x5926f2;};'use strict';var pdf=require(_0x30c3('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x30c3('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x30c3('0x2'));var Mustache=require(_0x30c3('0x3'));var util=require(_0x30c3('0x4'));var path=require('path');var sox=require(_0x30c3('0x5'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x30c3('0x6'));var squel=require(_0x30c3('0x7'));var crypto=require(_0x30c3('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x30c3('0x9'));var toCsv=require(_0x30c3('0xa'));var querystring=require(_0x30c3('0xb'));var Papa=require(_0x30c3('0xc'));var Redis=require('ioredis');var authService=require(_0x30c3('0xd'));var qs=require(_0x30c3('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x30c3('0xf'));var logger=require(_0x30c3('0x10'))(_0x30c3('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x30c3('0x12'));var db=require(_0x30c3('0x13'))['db'];function respondWithStatusCode(_0x37eb64,_0x129f4a){_0x129f4a=_0x129f4a||0xcc;return function(_0x4b7aa9){if(_0x4b7aa9){return _0x37eb64[_0x30c3('0x14')](_0x129f4a);}return _0x37eb64['status'](_0x129f4a)[_0x30c3('0x15')]();};}function respondWithResult(_0x2d6213,_0xfdf053){_0xfdf053=_0xfdf053||0xc8;return function(_0x40b6bb){if(_0x40b6bb){return _0x2d6213[_0x30c3('0x16')](_0xfdf053)[_0x30c3('0x17')](_0x40b6bb);}};}function respondWithFilteredResult(_0x47daff,_0x40dd25){return function(_0x497465){if(_0x497465){var _0x192594=_0x497465[_0x30c3('0x18')],_0x3f69ae=_0x40dd25['offset'],_0x568652=_0x40dd25[_0x30c3('0x19')]+_0x40dd25['limit'],_0x1b1d09;if(_0x568652>=_0x192594){_0x568652=_0x192594;_0x1b1d09=0xc8;}else{_0x1b1d09=0xce;}_0x47daff[_0x30c3('0x16')](_0x1b1d09);return _0x47daff[_0x30c3('0x1a')](_0x30c3('0x1b'),_0x3f69ae+'-'+_0x568652+'/'+_0x192594)[_0x30c3('0x17')](_0x497465);}return null;};}function patchUpdates(_0x1c2eec){return function(_0x24107e){try{jsonpatch[_0x30c3('0x1c')](_0x24107e,_0x1c2eec,!![]);}catch(_0x2f4c07){return BPromise[_0x30c3('0x1d')](_0x2f4c07);}return _0x24107e[_0x30c3('0x1e')]();};}function saveUpdates(_0x3c55ff,_0x54ca0e){return function(_0x1e53a){if(_0x1e53a){return _0x1e53a[_0x30c3('0x1f')](_0x3c55ff)[_0x30c3('0x20')](function(_0x2eb54b){return _0x2eb54b;});}return null;};}function removeEntity(_0x1c3739,_0x3f6009){return function(_0x27af46){if(_0x27af46){return _0x27af46['destroy']()[_0x30c3('0x20')](function(){var _0x3df1e8=_0x27af46[_0x30c3('0x21')]({'plain':!![]});var _0x33b882=_0x30c3('0x22');return db[_0x30c3('0x23')][_0x30c3('0x24')]({'where':{'type':_0x33b882,'resourceId':_0x3df1e8['id']}})[_0x30c3('0x20')](function(){return _0x27af46;});})[_0x30c3('0x20')](function(){_0x1c3739['status'](0xcc)[_0x30c3('0x15')]();});}};}function handleEntityNotFound(_0x1feebe,_0x38b0b2){return function(_0x1c22fd){if(!_0x1c22fd){_0x1feebe['sendStatus'](0x194);}return _0x1c22fd;};}function handleError(_0x211dfa,_0x30a820){_0x30a820=_0x30a820||0x1f4;return function(_0x41a21b){logger['error'](_0x41a21b[_0x30c3('0x25')]);if(_0x41a21b[_0x30c3('0x26')]){delete _0x41a21b[_0x30c3('0x26')];}_0x211dfa[_0x30c3('0x16')](_0x30a820)['send'](_0x41a21b);};}exports[_0x30c3('0x27')]=function(_0x14912c,_0x4bdbb1){var _0x40ec02={},_0x57d86d={},_0x2eebb3={'count':0x0,'rows':[]};var _0x538d75=_[_0x30c3('0x28')](db['Variable'][_0x30c3('0x29')],function(_0x1bfe72){return{'name':_0x1bfe72[_0x30c3('0x2a')],'type':_0x1bfe72[_0x30c3('0x2b')][_0x30c3('0x2c')]};});_0x57d86d['model']=_[_0x30c3('0x28')](_0x538d75,_0x30c3('0x26'));_0x57d86d[_0x30c3('0x2d')]=_['keys'](_0x14912c['query']);_0x57d86d[_0x30c3('0x2e')]=_['intersection'](_0x57d86d[_0x30c3('0x2f')],_0x57d86d['query']);_0x40ec02[_0x30c3('0x30')]=_['intersection'](_0x57d86d[_0x30c3('0x2f')],qs[_0x30c3('0x31')](_0x14912c[_0x30c3('0x2d')][_0x30c3('0x31')]));_0x40ec02[_0x30c3('0x30')]=_0x40ec02[_0x30c3('0x30')]['length']?_0x40ec02[_0x30c3('0x30')]:_0x57d86d[_0x30c3('0x2f')];if(!_0x14912c[_0x30c3('0x2d')][_0x30c3('0x32')](_0x30c3('0x33'))){_0x40ec02[_0x30c3('0x34')]=qs[_0x30c3('0x34')](_0x14912c[_0x30c3('0x2d')][_0x30c3('0x34')]);_0x40ec02['offset']=qs['offset'](_0x14912c[_0x30c3('0x2d')]['offset']);}_0x40ec02[_0x30c3('0x35')]=qs[_0x30c3('0x36')](_0x14912c[_0x30c3('0x2d')][_0x30c3('0x36')]);_0x40ec02[_0x30c3('0x37')]=qs[_0x30c3('0x2e')](_[_0x30c3('0x38')](_0x14912c[_0x30c3('0x2d')],_0x57d86d['filters']),_0x538d75);if(_0x14912c[_0x30c3('0x2d')][_0x30c3('0x39')]){_0x40ec02[_0x30c3('0x37')]=_['merge'](_0x40ec02['where'],{'$or':_['map'](_0x538d75,function(_0x1a14f0){if(_0x1a14f0[_0x30c3('0x2b')]!==_0x30c3('0x3a')){var _0x1248bd={};_0x1248bd[_0x1a14f0[_0x30c3('0x26')]]={'$like':'%'+_0x14912c[_0x30c3('0x2d')][_0x30c3('0x39')]+'%'};return _0x1248bd;}})});}_0x40ec02=_[_0x30c3('0x3b')]({},_0x40ec02,_0x14912c['options']);var _0x2da7b5={'where':_0x40ec02['where']};return db[_0x30c3('0x3c')][_0x30c3('0x18')](_0x2da7b5)[_0x30c3('0x20')](function(_0x5c1d4f){_0x2eebb3['count']=_0x5c1d4f;if(_0x14912c[_0x30c3('0x2d')][_0x30c3('0x3d')]){_0x40ec02[_0x30c3('0x3e')]=[{'all':!![]}];}return db[_0x30c3('0x3c')]['findAll'](_0x40ec02);})['then'](function(_0x26c383){_0x2eebb3[_0x30c3('0x3f')]=_0x26c383;return _0x2eebb3;})[_0x30c3('0x20')](respondWithFilteredResult(_0x4bdbb1,_0x40ec02))[_0x30c3('0x40')](handleError(_0x4bdbb1,null));};exports[_0x30c3('0x41')]=function(_0x384668,_0x4eeeff){var _0x273206={'raw':!![],'where':{'id':_0x384668[_0x30c3('0x42')]['id']}},_0x33c193={};_0x33c193[_0x30c3('0x2f')]=_[_0x30c3('0x43')](db['Variable']['rawAttributes']);_0x33c193['query']=_[_0x30c3('0x43')](_0x384668[_0x30c3('0x2d')]);_0x33c193['filters']=_['intersection'](_0x33c193[_0x30c3('0x2f')],_0x33c193[_0x30c3('0x2d')]);_0x273206['attributes']=_['intersection'](_0x33c193[_0x30c3('0x2f')],qs[_0x30c3('0x31')](_0x384668[_0x30c3('0x2d')][_0x30c3('0x31')]));_0x273206['attributes']=_0x273206[_0x30c3('0x30')][_0x30c3('0x44')]?_0x273206['attributes']:_0x33c193[_0x30c3('0x2f')];if(_0x384668[_0x30c3('0x2d')][_0x30c3('0x3d')]){_0x273206[_0x30c3('0x3e')]=[{'all':!![]}];}_0x273206=_[_0x30c3('0x3b')]({},_0x273206,_0x384668['options']);return db[_0x30c3('0x3c')][_0x30c3('0x45')](_0x273206)['then'](handleEntityNotFound(_0x4eeeff,null))['then'](respondWithResult(_0x4eeeff,null))[_0x30c3('0x40')](handleError(_0x4eeeff,null));};exports[_0x30c3('0x46')]=function(_0x4560f1,_0x1ef33b){return db[_0x30c3('0x3c')][_0x30c3('0x46')](_0x4560f1['body'],{})['then'](function(_0x228c3b){var _0x5bff31=_0x4560f1[_0x30c3('0x47')][_0x30c3('0x21')]({'plain':!![]});if(!_0x5bff31)throw new Error(_0x30c3('0x48'));if(_0x5bff31[_0x30c3('0x49')]===_0x30c3('0x47')){var _0x28e0ce=_0x228c3b[_0x30c3('0x21')]({'plain':!![]});var _0xd1a7d=_0x30c3('0x22');return db[_0x30c3('0x4a')][_0x30c3('0x45')]({'where':{'name':_0xd1a7d,'userProfileId':_0x5bff31[_0x30c3('0x4b')]},'raw':!![]})[_0x30c3('0x20')](function(_0x21320e){if(_0x21320e&&_0x21320e[_0x30c3('0x4c')]===0x0){return db['UserProfileResource']['create']({'name':_0x28e0ce[_0x30c3('0x26')],'resourceId':_0x28e0ce['id'],'type':_0x21320e[_0x30c3('0x26')],'sectionId':_0x21320e['id']},{})[_0x30c3('0x20')](function(){return _0x228c3b;});}else{return _0x228c3b;}})[_0x30c3('0x40')](function(_0x225915){logger[_0x30c3('0x4d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x225915);throw _0x225915;});}return _0x228c3b;})[_0x30c3('0x20')](respondWithResult(_0x1ef33b,0xc9))['catch'](handleError(_0x1ef33b,null));};exports[_0x30c3('0x1f')]=function(_0x33faf7,_0x40ad35){if(_0x33faf7[_0x30c3('0x4e')]['id']){delete _0x33faf7[_0x30c3('0x4e')]['id'];}return db[_0x30c3('0x3c')][_0x30c3('0x45')]({'where':{'id':_0x33faf7[_0x30c3('0x42')]['id']}})[_0x30c3('0x20')](handleEntityNotFound(_0x40ad35,null))['then'](saveUpdates(_0x33faf7[_0x30c3('0x4e')],null))[_0x30c3('0x20')](respondWithResult(_0x40ad35,null))['catch'](handleError(_0x40ad35,null));};exports[_0x30c3('0x24')]=function(_0x8f5ce6,_0x10b4b7){return db[_0x30c3('0x3c')]['find']({'where':{'id':_0x8f5ce6[_0x30c3('0x42')]['id']}})[_0x30c3('0x20')](handleEntityNotFound(_0x10b4b7,null))[_0x30c3('0x20')](removeEntity(_0x10b4b7,null))['catch'](handleError(_0x10b4b7,null));};