4d075cc93ffa3f4b9a0fc6b8b16c68bef36f2d3b
[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 _0xea97=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','get','Variables','UserProfileResource','stack','name','index','map','Variable','rawAttributes','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','merge','type','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service'];(function(_0x1602ef,_0x447aba){var _0x5870ee=function(_0x4d94e7){while(--_0x4d94e7){_0x1602ef['push'](_0x1602ef['shift']());}};_0x5870ee(++_0x447aba);}(_0xea97,0xeb));var _0x7ea9=function(_0x2235bf,_0x3a06a7){_0x2235bf=_0x2235bf-0x0;var _0x4c3a64=_0xea97[_0x2235bf];return _0x4c3a64;};'use strict';var pdf=require(_0x7ea9('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x7ea9('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7ea9('0x2'));var rp=require(_0x7ea9('0x3'));var moment=require(_0x7ea9('0x4'));var BPromise=require(_0x7ea9('0x5'));var Mustache=require('mustache');var util=require(_0x7ea9('0x6'));var path=require(_0x7ea9('0x7'));var sox=require('sox');var csv=require(_0x7ea9('0x8'));var ejs=require(_0x7ea9('0x9'));var fs=require('fs');var _=require(_0x7ea9('0xa'));var squel=require(_0x7ea9('0xb'));var crypto=require(_0x7ea9('0xc'));var jsforce=require(_0x7ea9('0xd'));var deskjs=require(_0x7ea9('0xe'));var toCsv=require(_0x7ea9('0x8'));var querystring=require(_0x7ea9('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x7ea9('0x10'));var qs=require(_0x7ea9('0x11'));var as=require(_0x7ea9('0x12'));var hardwareService=require(_0x7ea9('0x13'));var logger=require(_0x7ea9('0x14'))(_0x7ea9('0x15'));var utils=require(_0x7ea9('0x16'));var config=require(_0x7ea9('0x17'));var licenseUtil=require(_0x7ea9('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1e9d33,_0x492d88){_0x492d88=_0x492d88||0xcc;return function(_0x4541f7){if(_0x4541f7){return _0x1e9d33[_0x7ea9('0x19')](_0x492d88);}return _0x1e9d33[_0x7ea9('0x1a')](_0x492d88)[_0x7ea9('0x1b')]();};}function respondWithResult(_0x184dc2,_0x3dae7b){_0x3dae7b=_0x3dae7b||0xc8;return function(_0x2af29f){if(_0x2af29f){return _0x184dc2[_0x7ea9('0x1a')](_0x3dae7b)[_0x7ea9('0x1c')](_0x2af29f);}};}function respondWithFilteredResult(_0x3f793a,_0x59fcd8){return function(_0x35bc84){if(_0x35bc84){var _0x58a405=_0x35bc84[_0x7ea9('0x1d')],_0x2e2a7e=_0x59fcd8[_0x7ea9('0x1e')],_0x545ddd=_0x59fcd8[_0x7ea9('0x1e')]+_0x59fcd8[_0x7ea9('0x1f')],_0x20ecb8;if(_0x545ddd>=_0x58a405){_0x545ddd=_0x58a405;_0x20ecb8=0xc8;}else{_0x20ecb8=0xce;}_0x3f793a[_0x7ea9('0x1a')](_0x20ecb8);return _0x3f793a[_0x7ea9('0x20')](_0x7ea9('0x21'),_0x2e2a7e+'-'+_0x545ddd+'/'+_0x58a405)[_0x7ea9('0x1c')](_0x35bc84);}return null;};}function patchUpdates(_0x335b48){return function(_0x1e1c55){try{jsonpatch[_0x7ea9('0x22')](_0x1e1c55,_0x335b48,!![]);}catch(_0x2ef563){return BPromise[_0x7ea9('0x23')](_0x2ef563);}return _0x1e1c55['save']();};}function saveUpdates(_0x391169,_0x2baf50){return function(_0x28a67a){if(_0x28a67a){return _0x28a67a[_0x7ea9('0x24')](_0x391169)[_0x7ea9('0x25')](function(_0x445598){return _0x445598;});}return null;};}function removeEntity(_0xeb3051,_0x3562ad){return function(_0x53ef88){if(_0x53ef88){return _0x53ef88[_0x7ea9('0x26')]()[_0x7ea9('0x25')](function(){var _0x1b214d=_0x53ef88[_0x7ea9('0x27')]({'plain':!![]});var _0x531ca0=_0x7ea9('0x28');return db[_0x7ea9('0x29')][_0x7ea9('0x26')]({'where':{'type':_0x531ca0,'resourceId':_0x1b214d['id']}})['then'](function(){return _0x53ef88;});})[_0x7ea9('0x25')](function(){_0xeb3051[_0x7ea9('0x1a')](0xcc)[_0x7ea9('0x1b')]();});}};}function handleEntityNotFound(_0x1e11c6,_0x511946){return function(_0x9b1357){if(!_0x9b1357){_0x1e11c6[_0x7ea9('0x19')](0x194);}return _0x9b1357;};}function handleError(_0x3ab18f,_0x1878c3){_0x1878c3=_0x1878c3||0x1f4;return function(_0x5da73e){logger['error'](_0x5da73e[_0x7ea9('0x2a')]);if(_0x5da73e[_0x7ea9('0x2b')]){delete _0x5da73e[_0x7ea9('0x2b')];}_0x3ab18f[_0x7ea9('0x1a')](_0x1878c3)['send'](_0x5da73e);};}exports[_0x7ea9('0x2c')]=function(_0x29bb85,_0x221831){var _0x1f21ca={},_0x4955f2={},_0x151181={'count':0x0,'rows':[]};var _0x3ed5f8=_[_0x7ea9('0x2d')](db[_0x7ea9('0x2e')][_0x7ea9('0x2f')],function(_0x1adca2){return{'name':_0x1adca2['fieldName'],'type':_0x1adca2['type'][_0x7ea9('0x30')]};});_0x4955f2[_0x7ea9('0x31')]=_['map'](_0x3ed5f8,_0x7ea9('0x2b'));_0x4955f2[_0x7ea9('0x32')]=_[_0x7ea9('0x33')](_0x29bb85[_0x7ea9('0x32')]);_0x4955f2[_0x7ea9('0x34')]=_[_0x7ea9('0x35')](_0x4955f2['model'],_0x4955f2[_0x7ea9('0x32')]);_0x1f21ca['attributes']=_[_0x7ea9('0x35')](_0x4955f2[_0x7ea9('0x31')],qs[_0x7ea9('0x36')](_0x29bb85['query'][_0x7ea9('0x36')]));_0x1f21ca[_0x7ea9('0x37')]=_0x1f21ca[_0x7ea9('0x37')][_0x7ea9('0x38')]?_0x1f21ca[_0x7ea9('0x37')]:_0x4955f2[_0x7ea9('0x31')];if(!_0x29bb85[_0x7ea9('0x32')]['hasOwnProperty'](_0x7ea9('0x39'))){_0x1f21ca[_0x7ea9('0x1f')]=qs[_0x7ea9('0x1f')](_0x29bb85['query']['limit']);_0x1f21ca[_0x7ea9('0x1e')]=qs[_0x7ea9('0x1e')](_0x29bb85[_0x7ea9('0x32')][_0x7ea9('0x1e')]);}_0x1f21ca[_0x7ea9('0x3a')]=qs[_0x7ea9('0x3b')](_0x29bb85[_0x7ea9('0x32')][_0x7ea9('0x3b')]);_0x1f21ca[_0x7ea9('0x3c')]=qs['filters'](_[_0x7ea9('0x3d')](_0x29bb85[_0x7ea9('0x32')],_0x4955f2[_0x7ea9('0x34')]),_0x3ed5f8);if(_0x29bb85[_0x7ea9('0x32')]['filter']){_0x1f21ca[_0x7ea9('0x3c')]=_[_0x7ea9('0x3e')](_0x1f21ca[_0x7ea9('0x3c')],{'$or':_[_0x7ea9('0x2d')](_0x3ed5f8,function(_0x495b86){if(_0x495b86[_0x7ea9('0x3f')]!==_0x7ea9('0x40')){var _0x804e76={};_0x804e76[_0x495b86[_0x7ea9('0x2b')]]={'$like':'%'+_0x29bb85[_0x7ea9('0x32')][_0x7ea9('0x41')]+'%'};return _0x804e76;}})});}_0x1f21ca=_[_0x7ea9('0x3e')]({},_0x1f21ca,_0x29bb85[_0x7ea9('0x42')]);var _0x3320bc={'where':_0x1f21ca[_0x7ea9('0x3c')]};return db[_0x7ea9('0x2e')][_0x7ea9('0x1d')](_0x3320bc)[_0x7ea9('0x25')](function(_0x57991d){_0x151181[_0x7ea9('0x1d')]=_0x57991d;if(_0x29bb85[_0x7ea9('0x32')][_0x7ea9('0x43')]){_0x1f21ca[_0x7ea9('0x44')]=[{'all':!![]}];}return db['Variable'][_0x7ea9('0x45')](_0x1f21ca);})[_0x7ea9('0x25')](function(_0x5d71bd){_0x151181[_0x7ea9('0x46')]=_0x5d71bd;return _0x151181;})[_0x7ea9('0x25')](respondWithFilteredResult(_0x221831,_0x1f21ca))[_0x7ea9('0x47')](handleError(_0x221831,null));};exports[_0x7ea9('0x48')]=function(_0x107484,_0x8c27eb){var _0x316ca1={'raw':!![],'where':{'id':_0x107484[_0x7ea9('0x49')]['id']}},_0x2bef0f={};_0x2bef0f[_0x7ea9('0x31')]=_[_0x7ea9('0x33')](db[_0x7ea9('0x2e')][_0x7ea9('0x2f')]);_0x2bef0f['query']=_[_0x7ea9('0x33')](_0x107484['query']);_0x2bef0f['filters']=_[_0x7ea9('0x35')](_0x2bef0f[_0x7ea9('0x31')],_0x2bef0f[_0x7ea9('0x32')]);_0x316ca1[_0x7ea9('0x37')]=_[_0x7ea9('0x35')](_0x2bef0f[_0x7ea9('0x31')],qs[_0x7ea9('0x36')](_0x107484[_0x7ea9('0x32')]['fields']));_0x316ca1[_0x7ea9('0x37')]=_0x316ca1[_0x7ea9('0x37')]['length']?_0x316ca1[_0x7ea9('0x37')]:_0x2bef0f[_0x7ea9('0x31')];if(_0x107484[_0x7ea9('0x32')]['includeAll']){_0x316ca1[_0x7ea9('0x44')]=[{'all':!![]}];}_0x316ca1=_[_0x7ea9('0x3e')]({},_0x316ca1,_0x107484[_0x7ea9('0x42')]);return db[_0x7ea9('0x2e')][_0x7ea9('0x4a')](_0x316ca1)[_0x7ea9('0x25')](handleEntityNotFound(_0x8c27eb,null))[_0x7ea9('0x25')](respondWithResult(_0x8c27eb,null))[_0x7ea9('0x47')](handleError(_0x8c27eb,null));};exports[_0x7ea9('0x4b')]=function(_0x4cb1d0,_0x1bde8f){return db[_0x7ea9('0x2e')]['create'](_0x4cb1d0[_0x7ea9('0x4c')],{})[_0x7ea9('0x25')](function(_0x23abd3){var _0x36d310=_0x4cb1d0[_0x7ea9('0x4d')][_0x7ea9('0x27')]({'plain':!![]});if(!_0x36d310)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x36d310[_0x7ea9('0x4e')]===_0x7ea9('0x4d')){var _0x3ea173=_0x23abd3[_0x7ea9('0x27')]({'plain':!![]});var _0x2646c3='Variables';return db[_0x7ea9('0x4f')][_0x7ea9('0x4a')]({'where':{'name':_0x2646c3,'userProfileId':_0x36d310[_0x7ea9('0x50')]},'raw':!![]})[_0x7ea9('0x25')](function(_0x16bd9f){if(_0x16bd9f&&_0x16bd9f[_0x7ea9('0x51')]===0x0){return db[_0x7ea9('0x29')]['create']({'name':_0x3ea173[_0x7ea9('0x2b')],'resourceId':_0x3ea173['id'],'type':_0x16bd9f['name'],'sectionId':_0x16bd9f['id']},{})[_0x7ea9('0x25')](function(){return _0x23abd3;});}else{return _0x23abd3;}})['catch'](function(_0x2a3417){logger[_0x7ea9('0x52')](_0x7ea9('0x53'),_0x2a3417);throw _0x2a3417;});}return _0x23abd3;})['then'](respondWithResult(_0x1bde8f,0xc9))[_0x7ea9('0x47')](handleError(_0x1bde8f,null));};exports[_0x7ea9('0x24')]=function(_0x2565d8,_0x4b48ff){if(_0x2565d8[_0x7ea9('0x4c')]['id']){delete _0x2565d8[_0x7ea9('0x4c')]['id'];}return db[_0x7ea9('0x2e')][_0x7ea9('0x4a')]({'where':{'id':_0x2565d8['params']['id']}})[_0x7ea9('0x25')](handleEntityNotFound(_0x4b48ff,null))[_0x7ea9('0x25')](saveUpdates(_0x2565d8[_0x7ea9('0x4c')],null))['then'](respondWithResult(_0x4b48ff,null))[_0x7ea9('0x47')](handleError(_0x4b48ff,null));};exports[_0x7ea9('0x26')]=function(_0x5e49ff,_0x3b3891){return db['Variable'][_0x7ea9('0x4a')]({'where':{'id':_0x5e49ff[_0x7ea9('0x49')]['id']}})[_0x7ea9('0x25')](handleEntityNotFound(_0x3b3891,null))[_0x7ea9('0x25')](removeEntity(_0x3b3891,null))['catch'](handleError(_0x3b3891,null));};