3c957597417f3e912da3f2e910c1423c37b32fae
[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 _0x9942=['api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','set','reject','save','update','then','destroy','Variables','end','stack','name','map','Variable','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','filter','VIRTUAL','includeAll','include','findAll','rows','catch','merge','options','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x3f889c,_0x1c16af){var _0x5edf2a=function(_0x5adbc1){while(--_0x5adbc1){_0x3f889c['push'](_0x3f889c['shift']());}};_0x5edf2a(++_0x1c16af);}(_0x9942,0x8a));var _0x2994=function(_0xb1efb7,_0x1ce9e6){_0xb1efb7=_0xb1efb7-0x0;var _0x440e13=_0x9942[_0xb1efb7];return _0x440e13;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x2994('0x0'));var rimraf=require(_0x2994('0x1'));var zipdir=require(_0x2994('0x2'));var jsonpatch=require(_0x2994('0x3'));var rp=require('request-promise');var moment=require(_0x2994('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x2994('0x5'));var util=require('util');var path=require(_0x2994('0x6'));var sox=require(_0x2994('0x7'));var csv=require('to-csv');var ejs=require(_0x2994('0x8'));var fs=require('fs');var _=require(_0x2994('0x9'));var squel=require(_0x2994('0xa'));var crypto=require(_0x2994('0xb'));var jsforce=require(_0x2994('0xc'));var deskjs=require(_0x2994('0xd'));var toCsv=require(_0x2994('0xe'));var querystring=require(_0x2994('0xf'));var Papa=require(_0x2994('0x10'));var Redis=require(_0x2994('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x2994('0x12'));var as=require(_0x2994('0x13'));var hardwareService=require(_0x2994('0x14'));var logger=require(_0x2994('0x15'))(_0x2994('0x16'));var utils=require(_0x2994('0x17'));var config=require(_0x2994('0x18'));var db=require(_0x2994('0x19'))['db'];function respondWithStatusCode(_0x27198f,_0x587d38){_0x587d38=_0x587d38||0xcc;return function(_0x3adc0e){if(_0x3adc0e){return _0x27198f[_0x2994('0x1a')](_0x587d38);}return _0x27198f[_0x2994('0x1b')](_0x587d38)['end']();};}function respondWithResult(_0x5661d6,_0x27a95f){_0x27a95f=_0x27a95f||0xc8;return function(_0x5b220f){if(_0x5b220f){return _0x5661d6[_0x2994('0x1b')](_0x27a95f)[_0x2994('0x1c')](_0x5b220f);}};}function respondWithFilteredResult(_0x1a5287,_0x39bcf9){return function(_0x4160ef){if(_0x4160ef){var _0x5416ca=_0x4160ef[_0x2994('0x1d')],_0x4cf625=_0x39bcf9[_0x2994('0x1e')],_0x5cbe14=_0x39bcf9[_0x2994('0x1e')]+_0x39bcf9[_0x2994('0x1f')],_0x2814a3;if(_0x5cbe14>=_0x5416ca){_0x5cbe14=_0x5416ca;_0x2814a3=0xc8;}else{_0x2814a3=0xce;}_0x1a5287[_0x2994('0x1b')](_0x2814a3);return _0x1a5287[_0x2994('0x20')]('Content-Range',_0x4cf625+'-'+_0x5cbe14+'/'+_0x5416ca)[_0x2994('0x1c')](_0x4160ef);}return null;};}function patchUpdates(_0x69bfd1){return function(_0x4032d0){try{jsonpatch['apply'](_0x4032d0,_0x69bfd1,!![]);}catch(_0xb88bd){return BPromise[_0x2994('0x21')](_0xb88bd);}return _0x4032d0[_0x2994('0x22')]();};}function saveUpdates(_0x5e9f22,_0x3c5243){return function(_0x3f4bd8){if(_0x3f4bd8){return _0x3f4bd8[_0x2994('0x23')](_0x5e9f22)[_0x2994('0x24')](function(_0x14570b){return _0x14570b;});}return null;};}function removeEntity(_0x3e8f71,_0x388203){return function(_0x5ceea1){if(_0x5ceea1){return _0x5ceea1[_0x2994('0x25')]()[_0x2994('0x24')](function(){var _0x311910=_0x5ceea1['get']({'plain':!![]});var _0x349bd6=_0x2994('0x26');return db['UserProfileResource'][_0x2994('0x25')]({'where':{'type':_0x349bd6,'resourceId':_0x311910['id']}})[_0x2994('0x24')](function(){return _0x5ceea1;});})[_0x2994('0x24')](function(){_0x3e8f71[_0x2994('0x1b')](0xcc)[_0x2994('0x27')]();});}};}function handleEntityNotFound(_0x142e3a,_0x3aabd4){return function(_0x3cad5b){if(!_0x3cad5b){_0x142e3a[_0x2994('0x1a')](0x194);}return _0x3cad5b;};}function handleError(_0x1d00a2,_0x38ed57){_0x38ed57=_0x38ed57||0x1f4;return function(_0x393a76){logger['error'](_0x393a76[_0x2994('0x28')]);if(_0x393a76['name']){delete _0x393a76[_0x2994('0x29')];}_0x1d00a2['status'](_0x38ed57)['send'](_0x393a76);};}exports['index']=function(_0x1cf943,_0x542555){var _0x5d0c66={},_0x37748a={},_0x5ebf2e={'count':0x0,'rows':[]};var _0x58ec2d=_[_0x2994('0x2a')](db[_0x2994('0x2b')][_0x2994('0x2c')],function(_0x23089c){return{'name':_0x23089c[_0x2994('0x2d')],'type':_0x23089c[_0x2994('0x2e')][_0x2994('0x2f')]};});_0x37748a[_0x2994('0x30')]=_[_0x2994('0x2a')](_0x58ec2d,_0x2994('0x29'));_0x37748a[_0x2994('0x31')]=_[_0x2994('0x32')](_0x1cf943[_0x2994('0x31')]);_0x37748a[_0x2994('0x33')]=_[_0x2994('0x34')](_0x37748a[_0x2994('0x30')],_0x37748a[_0x2994('0x31')]);_0x5d0c66[_0x2994('0x35')]=_[_0x2994('0x34')](_0x37748a[_0x2994('0x30')],qs[_0x2994('0x36')](_0x1cf943[_0x2994('0x31')][_0x2994('0x36')]));_0x5d0c66[_0x2994('0x35')]=_0x5d0c66['attributes'][_0x2994('0x37')]?_0x5d0c66[_0x2994('0x35')]:_0x37748a[_0x2994('0x30')];if(!_0x1cf943[_0x2994('0x31')][_0x2994('0x38')]('nolimit')){_0x5d0c66[_0x2994('0x1f')]=qs[_0x2994('0x1f')](_0x1cf943[_0x2994('0x31')][_0x2994('0x1f')]);_0x5d0c66[_0x2994('0x1e')]=qs[_0x2994('0x1e')](_0x1cf943['query'][_0x2994('0x1e')]);}_0x5d0c66['order']=qs[_0x2994('0x39')](_0x1cf943['query'][_0x2994('0x39')]);_0x5d0c66[_0x2994('0x3a')]=qs['filters'](_['pick'](_0x1cf943['query'],_0x37748a[_0x2994('0x33')]),_0x58ec2d);if(_0x1cf943[_0x2994('0x31')][_0x2994('0x3b')]){_0x5d0c66[_0x2994('0x3a')]=_['merge'](_0x5d0c66[_0x2994('0x3a')],{'$or':_[_0x2994('0x2a')](_0x58ec2d,function(_0x1c7796){if(_0x1c7796[_0x2994('0x2e')]!==_0x2994('0x3c')){var _0x4b703a={};_0x4b703a[_0x1c7796[_0x2994('0x29')]]={'$like':'%'+_0x1cf943['query']['filter']+'%'};return _0x4b703a;}})});}_0x5d0c66=_['merge']({},_0x5d0c66,_0x1cf943['options']);var _0x3bf9ab={'where':_0x5d0c66[_0x2994('0x3a')]};return db['Variable'][_0x2994('0x1d')](_0x3bf9ab)[_0x2994('0x24')](function(_0x456c0c){_0x5ebf2e[_0x2994('0x1d')]=_0x456c0c;if(_0x1cf943[_0x2994('0x31')][_0x2994('0x3d')]){_0x5d0c66[_0x2994('0x3e')]=[{'all':!![]}];}return db[_0x2994('0x2b')][_0x2994('0x3f')](_0x5d0c66);})[_0x2994('0x24')](function(_0x5702c5){_0x5ebf2e[_0x2994('0x40')]=_0x5702c5;return _0x5ebf2e;})[_0x2994('0x24')](respondWithFilteredResult(_0x542555,_0x5d0c66))[_0x2994('0x41')](handleError(_0x542555,null));};exports['show']=function(_0x114958,_0x1631fe){var _0x50c262={'raw':!![],'where':{'id':_0x114958['params']['id']}},_0x162653={};_0x162653[_0x2994('0x30')]=_[_0x2994('0x32')](db['Variable'][_0x2994('0x2c')]);_0x162653[_0x2994('0x31')]=_[_0x2994('0x32')](_0x114958[_0x2994('0x31')]);_0x162653['filters']=_[_0x2994('0x34')](_0x162653[_0x2994('0x30')],_0x162653[_0x2994('0x31')]);_0x50c262[_0x2994('0x35')]=_[_0x2994('0x34')](_0x162653['model'],qs[_0x2994('0x36')](_0x114958[_0x2994('0x31')][_0x2994('0x36')]));_0x50c262[_0x2994('0x35')]=_0x50c262[_0x2994('0x35')][_0x2994('0x37')]?_0x50c262[_0x2994('0x35')]:_0x162653[_0x2994('0x30')];if(_0x114958[_0x2994('0x31')][_0x2994('0x3d')]){_0x50c262['include']=[{'all':!![]}];}_0x50c262=_[_0x2994('0x42')]({},_0x50c262,_0x114958[_0x2994('0x43')]);return db['Variable'][_0x2994('0x44')](_0x50c262)['then'](handleEntityNotFound(_0x1631fe,null))[_0x2994('0x24')](respondWithResult(_0x1631fe,null))[_0x2994('0x41')](handleError(_0x1631fe,null));};exports['create']=function(_0xcebc1c,_0x1aa549){return db[_0x2994('0x2b')][_0x2994('0x45')](_0xcebc1c[_0x2994('0x46')],{})[_0x2994('0x24')](function(_0x3f7ea7){var _0x237551=_0xcebc1c['user'][_0x2994('0x47')]({'plain':!![]});if(!_0x237551)throw new Error(_0x2994('0x48'));if(_0x237551['role']===_0x2994('0x49')){var _0x407af7=_0x3f7ea7['get']({'plain':!![]});var _0x31edbb=_0x2994('0x26');return db[_0x2994('0x4a')][_0x2994('0x44')]({'where':{'name':_0x31edbb,'userProfileId':_0x237551['userProfileId']},'raw':!![]})[_0x2994('0x24')](function(_0x274721){if(_0x274721&&_0x274721[_0x2994('0x4b')]===0x0){return db[_0x2994('0x4c')][_0x2994('0x45')]({'name':_0x407af7[_0x2994('0x29')],'resourceId':_0x407af7['id'],'type':_0x274721[_0x2994('0x29')],'sectionId':_0x274721['id']},{})['then'](function(){return _0x3f7ea7;});}else{return _0x3f7ea7;}})[_0x2994('0x41')](function(_0x22b1cd){logger[_0x2994('0x4d')](_0x2994('0x4e'),_0x22b1cd);throw _0x22b1cd;});}return _0x3f7ea7;})['then'](respondWithResult(_0x1aa549,0xc9))[_0x2994('0x41')](handleError(_0x1aa549,null));};exports[_0x2994('0x23')]=function(_0x2bed61,_0x35edf9){if(_0x2bed61[_0x2994('0x46')]['id']){delete _0x2bed61['body']['id'];}return db['Variable'][_0x2994('0x44')]({'where':{'id':_0x2bed61[_0x2994('0x4f')]['id']}})[_0x2994('0x24')](handleEntityNotFound(_0x35edf9,null))['then'](saveUpdates(_0x2bed61['body'],null))['then'](respondWithResult(_0x35edf9,null))[_0x2994('0x41')](handleError(_0x35edf9,null));};exports['destroy']=function(_0xb392bc,_0x377215){return db[_0x2994('0x2b')]['find']({'where':{'id':_0xb392bc[_0x2994('0x4f')]['id']}})[_0x2994('0x24')](handleEntityNotFound(_0x377215,null))[_0x2994('0x24')](removeEntity(_0x377215,null))[_0x2994('0x41')](handleError(_0x377215,null));};