f5f99a390e3507301706e5c2864cadd102823163
[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 _0x96db=['Content-Range','apply','save','update','then','destroy','get','Variables','UserProfileResource','error','stack','name','send','index','map','Variable','rawAttributes','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','rows','catch','show','include','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../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'];(function(_0x2b716b,_0x9001ae){var _0x4b4499=function(_0x3faaea){while(--_0x3faaea){_0x2b716b['push'](_0x2b716b['shift']());}};_0x4b4499(++_0x9001ae);}(_0x96db,0x18c));var _0xb96d=function(_0x44bcb0,_0x235aa9){_0x44bcb0=_0x44bcb0-0x0;var _0xfaf881=_0x96db[_0x44bcb0];return _0xfaf881;};'use strict';var pdf=require(_0xb96d('0x0'));var emlformat=require(_0xb96d('0x1'));var rimraf=require(_0xb96d('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb96d('0x3'));var rp=require(_0xb96d('0x4'));var moment=require(_0xb96d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xb96d('0x6'));var util=require(_0xb96d('0x7'));var path=require('path');var sox=require(_0xb96d('0x8'));var csv=require('to-csv');var ejs=require(_0xb96d('0x9'));var fs=require('fs');var _=require(_0xb96d('0xa'));var squel=require('squel');var crypto=require(_0xb96d('0xb'));var jsforce=require(_0xb96d('0xc'));var deskjs=require(_0xb96d('0xd'));var toCsv=require(_0xb96d('0xe'));var querystring=require(_0xb96d('0xf'));var Papa=require('papaparse');var Redis=require(_0xb96d('0x10'));var authService=require(_0xb96d('0x11'));var qs=require(_0xb96d('0x12'));var as=require(_0xb96d('0x13'));var hardwareService=require(_0xb96d('0x14'));var logger=require(_0xb96d('0x15'))(_0xb96d('0x16'));var utils=require(_0xb96d('0x17'));var config=require(_0xb96d('0x18'));var licenseUtil=require(_0xb96d('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x59c869,_0x39f983){_0x39f983=_0x39f983||0xcc;return function(_0x4a48cd){if(_0x4a48cd){return _0x59c869[_0xb96d('0x1a')](_0x39f983);}return _0x59c869[_0xb96d('0x1b')](_0x39f983)[_0xb96d('0x1c')]();};}function respondWithResult(_0x453007,_0x1d5453){_0x1d5453=_0x1d5453||0xc8;return function(_0x2aef07){if(_0x2aef07){return _0x453007[_0xb96d('0x1b')](_0x1d5453)[_0xb96d('0x1d')](_0x2aef07);}};}function respondWithFilteredResult(_0x42a8a0,_0x4f4647){return function(_0x535b02){if(_0x535b02){var _0x522601=_0x535b02[_0xb96d('0x1e')],_0x28bafc=_0x4f4647['offset'],_0x3cc4c5=_0x4f4647[_0xb96d('0x1f')]+_0x4f4647[_0xb96d('0x20')],_0x4146f5;if(_0x3cc4c5>=_0x522601){_0x3cc4c5=_0x522601;_0x4146f5=0xc8;}else{_0x4146f5=0xce;}_0x42a8a0[_0xb96d('0x1b')](_0x4146f5);return _0x42a8a0[_0xb96d('0x21')](_0xb96d('0x22'),_0x28bafc+'-'+_0x3cc4c5+'/'+_0x522601)[_0xb96d('0x1d')](_0x535b02);}return null;};}function patchUpdates(_0x5eaf9a){return function(_0x541e21){try{jsonpatch[_0xb96d('0x23')](_0x541e21,_0x5eaf9a,!![]);}catch(_0x68a637){return BPromise['reject'](_0x68a637);}return _0x541e21[_0xb96d('0x24')]();};}function saveUpdates(_0x2d17b2,_0x379aa8){return function(_0x37f8fb){if(_0x37f8fb){return _0x37f8fb[_0xb96d('0x25')](_0x2d17b2)[_0xb96d('0x26')](function(_0x5de0a7){return _0x5de0a7;});}return null;};}function removeEntity(_0xf6a878,_0x221162){return function(_0x86c2ff){if(_0x86c2ff){return _0x86c2ff[_0xb96d('0x27')]()[_0xb96d('0x26')](function(){var _0x8e667d=_0x86c2ff[_0xb96d('0x28')]({'plain':!![]});var _0x6346b6=_0xb96d('0x29');return db[_0xb96d('0x2a')][_0xb96d('0x27')]({'where':{'type':_0x6346b6,'resourceId':_0x8e667d['id']}})['then'](function(){return _0x86c2ff;});})[_0xb96d('0x26')](function(){_0xf6a878[_0xb96d('0x1b')](0xcc)[_0xb96d('0x1c')]();});}};}function handleEntityNotFound(_0x18b6d1,_0x2cda96){return function(_0xd9ef89){if(!_0xd9ef89){_0x18b6d1[_0xb96d('0x1a')](0x194);}return _0xd9ef89;};}function handleError(_0x5ae999,_0x507881){_0x507881=_0x507881||0x1f4;return function(_0x524e12){logger[_0xb96d('0x2b')](_0x524e12[_0xb96d('0x2c')]);if(_0x524e12[_0xb96d('0x2d')]){delete _0x524e12[_0xb96d('0x2d')];}_0x5ae999['status'](_0x507881)[_0xb96d('0x2e')](_0x524e12);};}exports[_0xb96d('0x2f')]=function(_0x328a41,_0x239fe9){var _0x2f8106={},_0x3d7707={},_0x4fecdb={'count':0x0,'rows':[]};var _0x373959=_[_0xb96d('0x30')](db[_0xb96d('0x31')][_0xb96d('0x32')],function(_0x3f3846){return{'name':_0x3f3846['fieldName'],'type':_0x3f3846['type'][_0xb96d('0x33')]};});_0x3d7707[_0xb96d('0x34')]=_[_0xb96d('0x30')](_0x373959,_0xb96d('0x2d'));_0x3d7707[_0xb96d('0x35')]=_[_0xb96d('0x36')](_0x328a41[_0xb96d('0x35')]);_0x3d7707[_0xb96d('0x37')]=_[_0xb96d('0x38')](_0x3d7707['model'],_0x3d7707[_0xb96d('0x35')]);_0x2f8106['attributes']=_[_0xb96d('0x38')](_0x3d7707['model'],qs[_0xb96d('0x39')](_0x328a41[_0xb96d('0x35')]['fields']));_0x2f8106['attributes']=_0x2f8106[_0xb96d('0x3a')][_0xb96d('0x3b')]?_0x2f8106[_0xb96d('0x3a')]:_0x3d7707[_0xb96d('0x34')];if(!_0x328a41[_0xb96d('0x35')][_0xb96d('0x3c')](_0xb96d('0x3d'))){_0x2f8106[_0xb96d('0x20')]=qs['limit'](_0x328a41[_0xb96d('0x35')][_0xb96d('0x20')]);_0x2f8106['offset']=qs[_0xb96d('0x1f')](_0x328a41['query'][_0xb96d('0x1f')]);}_0x2f8106[_0xb96d('0x3e')]=qs[_0xb96d('0x3f')](_0x328a41[_0xb96d('0x35')]['sort']);_0x2f8106[_0xb96d('0x40')]=qs[_0xb96d('0x37')](_[_0xb96d('0x41')](_0x328a41[_0xb96d('0x35')],_0x3d7707[_0xb96d('0x37')]),_0x373959);if(_0x328a41[_0xb96d('0x35')][_0xb96d('0x42')]){_0x2f8106[_0xb96d('0x40')]=_[_0xb96d('0x43')](_0x2f8106[_0xb96d('0x40')],{'$or':_[_0xb96d('0x30')](_0x373959,function(_0x11477c){if(_0x11477c[_0xb96d('0x44')]!==_0xb96d('0x45')){var _0x36f47c={};_0x36f47c[_0x11477c[_0xb96d('0x2d')]]={'$like':'%'+_0x328a41[_0xb96d('0x35')][_0xb96d('0x42')]+'%'};return _0x36f47c;}})});}_0x2f8106=_[_0xb96d('0x43')]({},_0x2f8106,_0x328a41[_0xb96d('0x46')]);var _0x1fa921={'where':_0x2f8106['where']};return db[_0xb96d('0x31')][_0xb96d('0x1e')](_0x1fa921)['then'](function(_0x396b6){_0x4fecdb['count']=_0x396b6;if(_0x328a41[_0xb96d('0x35')][_0xb96d('0x47')]){_0x2f8106['include']=[{'all':!![]}];}return db['Variable']['findAll'](_0x2f8106);})[_0xb96d('0x26')](function(_0x48f798){_0x4fecdb[_0xb96d('0x48')]=_0x48f798;return _0x4fecdb;})['then'](respondWithFilteredResult(_0x239fe9,_0x2f8106))[_0xb96d('0x49')](handleError(_0x239fe9,null));};exports[_0xb96d('0x4a')]=function(_0x302cba,_0x4815fb){var _0x5b1ef8={'raw':!![],'where':{'id':_0x302cba['params']['id']}},_0x19ce1c={};_0x19ce1c['model']=_[_0xb96d('0x36')](db[_0xb96d('0x31')][_0xb96d('0x32')]);_0x19ce1c[_0xb96d('0x35')]=_['keys'](_0x302cba['query']);_0x19ce1c[_0xb96d('0x37')]=_[_0xb96d('0x38')](_0x19ce1c[_0xb96d('0x34')],_0x19ce1c['query']);_0x5b1ef8['attributes']=_[_0xb96d('0x38')](_0x19ce1c[_0xb96d('0x34')],qs['fields'](_0x302cba[_0xb96d('0x35')]['fields']));_0x5b1ef8[_0xb96d('0x3a')]=_0x5b1ef8['attributes'][_0xb96d('0x3b')]?_0x5b1ef8[_0xb96d('0x3a')]:_0x19ce1c['model'];if(_0x302cba[_0xb96d('0x35')][_0xb96d('0x47')]){_0x5b1ef8[_0xb96d('0x4b')]=[{'all':!![]}];}_0x5b1ef8=_[_0xb96d('0x43')]({},_0x5b1ef8,_0x302cba['options']);return db['Variable'][_0xb96d('0x4c')](_0x5b1ef8)[_0xb96d('0x26')](handleEntityNotFound(_0x4815fb,null))[_0xb96d('0x26')](respondWithResult(_0x4815fb,null))[_0xb96d('0x49')](handleError(_0x4815fb,null));};exports['create']=function(_0x4a2ceb,_0x1bf6be){return db[_0xb96d('0x31')][_0xb96d('0x4d')](_0x4a2ceb['body'],{})[_0xb96d('0x26')](function(_0x19b2c3){var _0x795c41=_0x4a2ceb['user']['get']({'plain':!![]});if(!_0x795c41)throw new Error(_0xb96d('0x4e'));if(_0x795c41[_0xb96d('0x4f')]===_0xb96d('0x50')){var _0x376f10=_0x19b2c3[_0xb96d('0x28')]({'plain':!![]});var _0x239e19=_0xb96d('0x29');return db['UserProfileSection']['find']({'where':{'name':_0x239e19,'userProfileId':_0x795c41[_0xb96d('0x51')]},'raw':!![]})[_0xb96d('0x26')](function(_0x1a3dae){if(_0x1a3dae&&_0x1a3dae[_0xb96d('0x52')]===0x0){return db[_0xb96d('0x2a')][_0xb96d('0x4d')]({'name':_0x376f10[_0xb96d('0x2d')],'resourceId':_0x376f10['id'],'type':_0x1a3dae[_0xb96d('0x2d')],'sectionId':_0x1a3dae['id']},{})[_0xb96d('0x26')](function(){return _0x19b2c3;});}else{return _0x19b2c3;}})[_0xb96d('0x49')](function(_0xbc9e50){logger[_0xb96d('0x2b')](_0xb96d('0x53'),_0xbc9e50);throw _0xbc9e50;});}return _0x19b2c3;})[_0xb96d('0x26')](respondWithResult(_0x1bf6be,0xc9))[_0xb96d('0x49')](handleError(_0x1bf6be,null));};exports[_0xb96d('0x25')]=function(_0x33858b,_0x28cbb4){if(_0x33858b[_0xb96d('0x54')]['id']){delete _0x33858b['body']['id'];}return db['Variable']['find']({'where':{'id':_0x33858b[_0xb96d('0x55')]['id']}})[_0xb96d('0x26')](handleEntityNotFound(_0x28cbb4,null))['then'](saveUpdates(_0x33858b['body'],null))[_0xb96d('0x26')](respondWithResult(_0x28cbb4,null))[_0xb96d('0x49')](handleError(_0x28cbb4,null));};exports[_0xb96d('0x27')]=function(_0x46b748,_0xd59fef){return db[_0xb96d('0x31')][_0xb96d('0x4c')]({'where':{'id':_0x46b748[_0xb96d('0x55')]['id']}})[_0xb96d('0x26')](handleEntityNotFound(_0xd59fef,null))[_0xb96d('0x26')](removeEntity(_0xd59fef,null))[_0xb96d('0x49')](handleError(_0xd59fef,null));};