Built motion from commit d5e4af8c.|2.6.23
[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 _0x2257=['fieldName','type','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','pick','filter','where','merge','VIRTUAL','name','options','Variable','include','findAll','rows','catch','show','params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Variables','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','get','end','error','stack','send','index','rawAttributes'];(function(_0x3950a8,_0x9a9ea8){var _0x41ebd0=function(_0x3eaeda){while(--_0x3eaeda){_0x3950a8['push'](_0x3950a8['shift']());}};_0x41ebd0(++_0x9a9ea8);}(_0x2257,0xc8));var _0x7225=function(_0x202cf5,_0x5c6374){_0x202cf5=_0x202cf5-0x0;var _0x36eea5=_0x2257[_0x202cf5];return _0x36eea5;};'use strict';var emlformat=require(_0x7225('0x0'));var rimraf=require(_0x7225('0x1'));var zipdir=require(_0x7225('0x2'));var jsonpatch=require(_0x7225('0x3'));var rp=require(_0x7225('0x4'));var moment=require(_0x7225('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x7225('0x6'));var util=require(_0x7225('0x7'));var path=require(_0x7225('0x8'));var sox=require(_0x7225('0x9'));var csv=require(_0x7225('0xa'));var ejs=require(_0x7225('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7225('0xc'));var squel=require(_0x7225('0xd'));var crypto=require(_0x7225('0xe'));var jsforce=require(_0x7225('0xf'));var deskjs=require(_0x7225('0x10'));var toCsv=require(_0x7225('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x7225('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x7225('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x7225('0x13'))(_0x7225('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x7225('0x15'));var db=require(_0x7225('0x16'))['db'];function respondWithStatusCode(_0x2965a5,_0xf09fba){_0xf09fba=_0xf09fba||0xcc;return function(_0x2c42f8){if(_0x2c42f8){return _0x2965a5['sendStatus'](_0xf09fba);}return _0x2965a5[_0x7225('0x17')](_0xf09fba)['end']();};}function respondWithResult(_0x3b765b,_0x3b338a){_0x3b338a=_0x3b338a||0xc8;return function(_0x3add31){if(_0x3add31){return _0x3b765b['status'](_0x3b338a)[_0x7225('0x18')](_0x3add31);}};}function respondWithFilteredResult(_0x2f46c4,_0x12fe87){return function(_0x23d64f){if(_0x23d64f){var _0x341b0f=typeof _0x12fe87[_0x7225('0x19')]===_0x7225('0x1a')&&typeof _0x12fe87[_0x7225('0x1b')]===_0x7225('0x1a');var _0x35abad=_0x23d64f[_0x7225('0x1c')];var _0x3ba7ac=_0x341b0f?0x0:_0x12fe87[_0x7225('0x19')];var _0x3ff049=_0x341b0f?_0x23d64f[_0x7225('0x1c')]:_0x12fe87[_0x7225('0x19')]+_0x12fe87[_0x7225('0x1b')];var _0x2ec14e;if(_0x3ff049>=_0x35abad){_0x3ff049=_0x35abad;_0x2ec14e=0xc8;}else{_0x2ec14e=0xce;}_0x2f46c4[_0x7225('0x17')](_0x2ec14e);return _0x2f46c4[_0x7225('0x1d')](_0x7225('0x1e'),_0x3ba7ac+'-'+_0x3ff049+'/'+_0x35abad)['json'](_0x23d64f);}return null;};}function patchUpdates(_0x50cf12){return function(_0x5607a9){try{jsonpatch['apply'](_0x5607a9,_0x50cf12,!![]);}catch(_0x5d9dc4){return BPromise[_0x7225('0x1f')](_0x5d9dc4);}return _0x5607a9[_0x7225('0x20')]();};}function saveUpdates(_0x11e1e7,_0x2526c8){return function(_0x35e555){if(_0x35e555){return _0x35e555[_0x7225('0x21')](_0x11e1e7)[_0x7225('0x22')](function(_0x248596){return _0x248596;});}return null;};}function removeEntity(_0x2d899c,_0x2d79d8){return function(_0x564c31){if(_0x564c31){return _0x564c31[_0x7225('0x23')]()['then'](function(){var _0x18b82b=_0x564c31[_0x7225('0x24')]({'plain':!![]});var _0x259049='Variables';return db['UserProfileResource']['destroy']({'where':{'type':_0x259049,'resourceId':_0x18b82b['id']}})[_0x7225('0x22')](function(){return _0x564c31;});})['then'](function(){_0x2d899c[_0x7225('0x17')](0xcc)[_0x7225('0x25')]();});}};}function handleEntityNotFound(_0x353a18,_0x2a7dbe){return function(_0x3c494a){if(!_0x3c494a){_0x353a18['sendStatus'](0x194);}return _0x3c494a;};}function handleError(_0x42d72f,_0x1e7533){_0x1e7533=_0x1e7533||0x1f4;return function(_0x154dfd){logger[_0x7225('0x26')](_0x154dfd[_0x7225('0x27')]);if(_0x154dfd['name']){delete _0x154dfd['name'];}_0x42d72f[_0x7225('0x17')](_0x1e7533)[_0x7225('0x28')](_0x154dfd);};}exports[_0x7225('0x29')]=function(_0x3f92c5,_0x346950){var _0x22b8c1={},_0x311436={},_0x37b2a9={'count':0x0,'rows':[]};var _0x3c9d63=_['map'](db['Variable'][_0x7225('0x2a')],function(_0x4ae216){return{'name':_0x4ae216[_0x7225('0x2b')],'type':_0x4ae216[_0x7225('0x2c')]['key']};});_0x311436[_0x7225('0x2d')]=_[_0x7225('0x2e')](_0x3c9d63,'name');_0x311436[_0x7225('0x2f')]=_[_0x7225('0x30')](_0x3f92c5[_0x7225('0x2f')]);_0x311436[_0x7225('0x31')]=_['intersection'](_0x311436[_0x7225('0x2d')],_0x311436[_0x7225('0x2f')]);_0x22b8c1[_0x7225('0x32')]=_[_0x7225('0x33')](_0x311436[_0x7225('0x2d')],qs[_0x7225('0x34')](_0x3f92c5[_0x7225('0x2f')][_0x7225('0x34')]));_0x22b8c1['attributes']=_0x22b8c1[_0x7225('0x32')][_0x7225('0x35')]?_0x22b8c1[_0x7225('0x32')]:_0x311436[_0x7225('0x2d')];if(!_0x3f92c5[_0x7225('0x2f')][_0x7225('0x36')](_0x7225('0x37'))){_0x22b8c1[_0x7225('0x1b')]=qs[_0x7225('0x1b')](_0x3f92c5[_0x7225('0x2f')][_0x7225('0x1b')]);_0x22b8c1[_0x7225('0x19')]=qs[_0x7225('0x19')](_0x3f92c5['query']['offset']);}_0x22b8c1[_0x7225('0x38')]=qs['sort'](_0x3f92c5[_0x7225('0x2f')]['sort']);_0x22b8c1['where']=qs[_0x7225('0x31')](_[_0x7225('0x39')](_0x3f92c5['query'],_0x311436['filters']),_0x3c9d63);if(_0x3f92c5[_0x7225('0x2f')][_0x7225('0x3a')]){_0x22b8c1[_0x7225('0x3b')]=_[_0x7225('0x3c')](_0x22b8c1[_0x7225('0x3b')],{'$or':_[_0x7225('0x2e')](_0x3c9d63,function(_0x42b4f8){if(_0x42b4f8[_0x7225('0x2c')]!==_0x7225('0x3d')){var _0x29bcf0={};_0x29bcf0[_0x42b4f8[_0x7225('0x3e')]]={'$like':'%'+_0x3f92c5['query'][_0x7225('0x3a')]+'%'};return _0x29bcf0;}})});}_0x22b8c1=_[_0x7225('0x3c')]({},_0x22b8c1,_0x3f92c5[_0x7225('0x3f')]);var _0x34cdd4={'where':_0x22b8c1['where']};return db[_0x7225('0x40')][_0x7225('0x1c')](_0x34cdd4)['then'](function(_0x3bbadb){_0x37b2a9[_0x7225('0x1c')]=_0x3bbadb;if(_0x3f92c5[_0x7225('0x2f')]['includeAll']){_0x22b8c1[_0x7225('0x41')]=[{'all':!![]}];}return db[_0x7225('0x40')][_0x7225('0x42')](_0x22b8c1);})[_0x7225('0x22')](function(_0x300b5f){_0x37b2a9[_0x7225('0x43')]=_0x300b5f;return _0x37b2a9;})[_0x7225('0x22')](respondWithFilteredResult(_0x346950,_0x22b8c1))[_0x7225('0x44')](handleError(_0x346950,null));};exports[_0x7225('0x45')]=function(_0x2bd624,_0x3ccea1){var _0x43aa30={'raw':!![],'where':{'id':_0x2bd624[_0x7225('0x46')]['id']}},_0x187e25={};_0x187e25['model']=_['keys'](db[_0x7225('0x40')][_0x7225('0x2a')]);_0x187e25[_0x7225('0x2f')]=_['keys'](_0x2bd624[_0x7225('0x2f')]);_0x187e25[_0x7225('0x31')]=_[_0x7225('0x33')](_0x187e25[_0x7225('0x2d')],_0x187e25['query']);_0x43aa30[_0x7225('0x32')]=_['intersection'](_0x187e25[_0x7225('0x2d')],qs[_0x7225('0x34')](_0x2bd624[_0x7225('0x2f')]['fields']));_0x43aa30[_0x7225('0x32')]=_0x43aa30[_0x7225('0x32')][_0x7225('0x35')]?_0x43aa30[_0x7225('0x32')]:_0x187e25['model'];if(_0x2bd624[_0x7225('0x2f')]['includeAll']){_0x43aa30[_0x7225('0x41')]=[{'all':!![]}];}_0x43aa30=_['merge']({},_0x43aa30,_0x2bd624[_0x7225('0x3f')]);return db[_0x7225('0x40')][_0x7225('0x47')](_0x43aa30)['then'](handleEntityNotFound(_0x3ccea1,null))['then'](respondWithResult(_0x3ccea1,null))[_0x7225('0x44')](handleError(_0x3ccea1,null));};exports[_0x7225('0x48')]=function(_0x1b58f1,_0x177306){return db[_0x7225('0x40')][_0x7225('0x48')](_0x1b58f1['body'],{})[_0x7225('0x22')](function(_0x98958d){var _0xb3f8dd=_0x1b58f1[_0x7225('0x49')]['get']({'plain':!![]});if(!_0xb3f8dd)throw new Error(_0x7225('0x4a'));if(_0xb3f8dd['role']===_0x7225('0x49')){var _0x4c4938=_0x98958d[_0x7225('0x24')]({'plain':!![]});var _0x284a24=_0x7225('0x4b');return db[_0x7225('0x4c')][_0x7225('0x47')]({'where':{'name':_0x284a24,'userProfileId':_0xb3f8dd[_0x7225('0x4d')]},'raw':!![]})['then'](function(_0x55aa66){if(_0x55aa66&&_0x55aa66[_0x7225('0x4e')]===0x0){return db['UserProfileResource']['create']({'name':_0x4c4938['name'],'resourceId':_0x4c4938['id'],'type':_0x55aa66[_0x7225('0x3e')],'sectionId':_0x55aa66['id']},{})[_0x7225('0x22')](function(){return _0x98958d;});}else{return _0x98958d;}})['catch'](function(_0x4dfb08){logger[_0x7225('0x26')](_0x7225('0x4f'),_0x4dfb08);throw _0x4dfb08;});}return _0x98958d;})[_0x7225('0x22')](respondWithResult(_0x177306,0xc9))[_0x7225('0x44')](handleError(_0x177306,null));};exports[_0x7225('0x21')]=function(_0x24893a,_0x2cb967){if(_0x24893a[_0x7225('0x50')]['id']){delete _0x24893a[_0x7225('0x50')]['id'];}return db['Variable'][_0x7225('0x47')]({'where':{'id':_0x24893a[_0x7225('0x46')]['id']}})[_0x7225('0x22')](handleEntityNotFound(_0x2cb967,null))['then'](saveUpdates(_0x24893a[_0x7225('0x50')],null))[_0x7225('0x22')](respondWithResult(_0x2cb967,null))[_0x7225('0x44')](handleError(_0x2cb967,null));};exports[_0x7225('0x23')]=function(_0xd587d4,_0x505d3b){return db['Variable']['find']({'where':{'id':_0xd587d4[_0x7225('0x46')]['id']}})[_0x7225('0x22')](handleEntityNotFound(_0x505d3b,null))[_0x7225('0x22')](removeEntity(_0x505d3b,null))[_0x7225('0x44')](handleError(_0x505d3b,null));};