Built motion from commit e02f907f.|2.6.14
[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 _0x5abb=['rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','count','limit','set','Content-Range','json','reject','save','update','then','get','Variables','UserProfileResource','destroy','end','error','stack','index','map','Variable','rawAttributes','type','model','name','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','include','rows','show','params','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','catch','eml-format'];(function(_0x141539,_0x1c3997){var _0x553d51=function(_0x1fe47c){while(--_0x1fe47c){_0x141539['push'](_0x141539['shift']());}};_0x553d51(++_0x1c3997);}(_0x5abb,0x14f));var _0xb5ab=function(_0x281f6b,_0x5a8126){_0x281f6b=_0x281f6b-0x0;var _0x4db410=_0x5abb[_0x281f6b];return _0x4db410;};'use strict';var emlformat=require(_0xb5ab('0x0'));var rimraf=require(_0xb5ab('0x1'));var zipdir=require(_0xb5ab('0x2'));var jsonpatch=require(_0xb5ab('0x3'));var rp=require(_0xb5ab('0x4'));var moment=require(_0xb5ab('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xb5ab('0x6'));var path=require(_0xb5ab('0x7'));var sox=require(_0xb5ab('0x8'));var csv=require(_0xb5ab('0x9'));var ejs=require(_0xb5ab('0xa'));var fs=require('fs');var fs_extra=require(_0xb5ab('0xb'));var _=require(_0xb5ab('0xc'));var squel=require(_0xb5ab('0xd'));var crypto=require(_0xb5ab('0xe'));var jsforce=require(_0xb5ab('0xf'));var deskjs=require(_0xb5ab('0x10'));var toCsv=require(_0xb5ab('0x9'));var querystring=require(_0xb5ab('0x11'));var Papa=require(_0xb5ab('0x12'));var Redis=require(_0xb5ab('0x13'));var authService=require('../../components/auth/service');var qs=require(_0xb5ab('0x14'));var as=require(_0xb5ab('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb5ab('0x16'))(_0xb5ab('0x17'));var utils=require(_0xb5ab('0x18'));var config=require(_0xb5ab('0x19'));var licenseUtil=require(_0xb5ab('0x1a'));var db=require(_0xb5ab('0x1b'))['db'];function respondWithStatusCode(_0x51d32a,_0x1afd59){_0x1afd59=_0x1afd59||0xcc;return function(_0x5c1504){if(_0x5c1504){return _0x51d32a[_0xb5ab('0x1c')](_0x1afd59);}return _0x51d32a['status'](_0x1afd59)['end']();};}function respondWithResult(_0x1beef8,_0x7d85ba){_0x7d85ba=_0x7d85ba||0xc8;return function(_0x3269d1){if(_0x3269d1){return _0x1beef8[_0xb5ab('0x1d')](_0x7d85ba)['json'](_0x3269d1);}};}function respondWithFilteredResult(_0x5e5b30,_0x202fe0){return function(_0x4d6093){if(_0x4d6093){var _0x4656ab=typeof _0x202fe0[_0xb5ab('0x1e')]===_0xb5ab('0x1f')&&typeof _0x202fe0['limit']===_0xb5ab('0x1f');var _0x465d49=_0x4d6093[_0xb5ab('0x20')];var _0x100236=_0x4656ab?0x0:_0x202fe0[_0xb5ab('0x1e')];var _0x4dddc5=_0x4656ab?_0x4d6093[_0xb5ab('0x20')]:_0x202fe0['offset']+_0x202fe0[_0xb5ab('0x21')];var _0x5494fa;if(_0x4dddc5>=_0x465d49){_0x4dddc5=_0x465d49;_0x5494fa=0xc8;}else{_0x5494fa=0xce;}_0x5e5b30[_0xb5ab('0x1d')](_0x5494fa);return _0x5e5b30[_0xb5ab('0x22')](_0xb5ab('0x23'),_0x100236+'-'+_0x4dddc5+'/'+_0x465d49)[_0xb5ab('0x24')](_0x4d6093);}return null;};}function patchUpdates(_0x2d8aef){return function(_0x40a00b){try{jsonpatch['apply'](_0x40a00b,_0x2d8aef,!![]);}catch(_0x57e58e){return BPromise[_0xb5ab('0x25')](_0x57e58e);}return _0x40a00b[_0xb5ab('0x26')]();};}function saveUpdates(_0x4daf07,_0x329c8a){return function(_0xd244ad){if(_0xd244ad){return _0xd244ad[_0xb5ab('0x27')](_0x4daf07)['then'](function(_0x500d29){return _0x500d29;});}return null;};}function removeEntity(_0x325bab,_0x1add15){return function(_0x2a8611){if(_0x2a8611){return _0x2a8611['destroy']()[_0xb5ab('0x28')](function(){var _0x398c93=_0x2a8611[_0xb5ab('0x29')]({'plain':!![]});var _0x304570=_0xb5ab('0x2a');return db[_0xb5ab('0x2b')][_0xb5ab('0x2c')]({'where':{'type':_0x304570,'resourceId':_0x398c93['id']}})[_0xb5ab('0x28')](function(){return _0x2a8611;});})[_0xb5ab('0x28')](function(){_0x325bab[_0xb5ab('0x1d')](0xcc)[_0xb5ab('0x2d')]();});}};}function handleEntityNotFound(_0x4e7b21,_0x226c9b){return function(_0x210169){if(!_0x210169){_0x4e7b21[_0xb5ab('0x1c')](0x194);}return _0x210169;};}function handleError(_0x1eb3c4,_0xbb0e5f){_0xbb0e5f=_0xbb0e5f||0x1f4;return function(_0x508330){logger[_0xb5ab('0x2e')](_0x508330[_0xb5ab('0x2f')]);if(_0x508330['name']){delete _0x508330['name'];}_0x1eb3c4[_0xb5ab('0x1d')](_0xbb0e5f)['send'](_0x508330);};}exports[_0xb5ab('0x30')]=function(_0x9f8b37,_0x577ed8){var _0x559274={},_0x273062={},_0x541cd6={'count':0x0,'rows':[]};var _0x35aee4=_[_0xb5ab('0x31')](db[_0xb5ab('0x32')][_0xb5ab('0x33')],function(_0x280cb5){return{'name':_0x280cb5['fieldName'],'type':_0x280cb5[_0xb5ab('0x34')]['key']};});_0x273062[_0xb5ab('0x35')]=_[_0xb5ab('0x31')](_0x35aee4,_0xb5ab('0x36'));_0x273062[_0xb5ab('0x37')]=_[_0xb5ab('0x38')](_0x9f8b37[_0xb5ab('0x37')]);_0x273062['filters']=_['intersection'](_0x273062['model'],_0x273062['query']);_0x559274['attributes']=_[_0xb5ab('0x39')](_0x273062['model'],qs[_0xb5ab('0x3a')](_0x9f8b37[_0xb5ab('0x37')]['fields']));_0x559274[_0xb5ab('0x3b')]=_0x559274['attributes']['length']?_0x559274[_0xb5ab('0x3b')]:_0x273062[_0xb5ab('0x35')];if(!_0x9f8b37[_0xb5ab('0x37')][_0xb5ab('0x3c')](_0xb5ab('0x3d'))){_0x559274['limit']=qs[_0xb5ab('0x21')](_0x9f8b37[_0xb5ab('0x37')]['limit']);_0x559274[_0xb5ab('0x1e')]=qs[_0xb5ab('0x1e')](_0x9f8b37['query'][_0xb5ab('0x1e')]);}_0x559274[_0xb5ab('0x3e')]=qs['sort'](_0x9f8b37[_0xb5ab('0x37')][_0xb5ab('0x3f')]);_0x559274[_0xb5ab('0x40')]=qs[_0xb5ab('0x41')](_[_0xb5ab('0x42')](_0x9f8b37[_0xb5ab('0x37')],_0x273062[_0xb5ab('0x41')]),_0x35aee4);if(_0x9f8b37[_0xb5ab('0x37')][_0xb5ab('0x43')]){_0x559274[_0xb5ab('0x40')]=_[_0xb5ab('0x44')](_0x559274[_0xb5ab('0x40')],{'$or':_[_0xb5ab('0x31')](_0x35aee4,function(_0x729de9){if(_0x729de9[_0xb5ab('0x34')]!==_0xb5ab('0x45')){var _0x370acd={};_0x370acd[_0x729de9[_0xb5ab('0x36')]]={'$like':'%'+_0x9f8b37[_0xb5ab('0x37')][_0xb5ab('0x43')]+'%'};return _0x370acd;}})});}_0x559274=_['merge']({},_0x559274,_0x9f8b37['options']);var _0x1cefd5={'where':_0x559274[_0xb5ab('0x40')]};return db[_0xb5ab('0x32')][_0xb5ab('0x20')](_0x1cefd5)[_0xb5ab('0x28')](function(_0xa0010b){_0x541cd6[_0xb5ab('0x20')]=_0xa0010b;if(_0x9f8b37[_0xb5ab('0x37')][_0xb5ab('0x46')]){_0x559274[_0xb5ab('0x47')]=[{'all':!![]}];}return db['Variable']['findAll'](_0x559274);})['then'](function(_0x35a4d2){_0x541cd6[_0xb5ab('0x48')]=_0x35a4d2;return _0x541cd6;})['then'](respondWithFilteredResult(_0x577ed8,_0x559274))['catch'](handleError(_0x577ed8,null));};exports[_0xb5ab('0x49')]=function(_0x438170,_0x2a6f88){var _0x4cd580={'raw':!![],'where':{'id':_0x438170[_0xb5ab('0x4a')]['id']}},_0x1b6487={};_0x1b6487[_0xb5ab('0x35')]=_[_0xb5ab('0x38')](db[_0xb5ab('0x32')]['rawAttributes']);_0x1b6487['query']=_[_0xb5ab('0x38')](_0x438170[_0xb5ab('0x37')]);_0x1b6487[_0xb5ab('0x41')]=_[_0xb5ab('0x39')](_0x1b6487[_0xb5ab('0x35')],_0x1b6487['query']);_0x4cd580['attributes']=_[_0xb5ab('0x39')](_0x1b6487[_0xb5ab('0x35')],qs['fields'](_0x438170[_0xb5ab('0x37')]['fields']));_0x4cd580['attributes']=_0x4cd580[_0xb5ab('0x3b')]['length']?_0x4cd580[_0xb5ab('0x3b')]:_0x1b6487['model'];if(_0x438170[_0xb5ab('0x37')][_0xb5ab('0x46')]){_0x4cd580[_0xb5ab('0x47')]=[{'all':!![]}];}_0x4cd580=_[_0xb5ab('0x44')]({},_0x4cd580,_0x438170['options']);return db[_0xb5ab('0x32')]['find'](_0x4cd580)['then'](handleEntityNotFound(_0x2a6f88,null))[_0xb5ab('0x28')](respondWithResult(_0x2a6f88,null))['catch'](handleError(_0x2a6f88,null));};exports['create']=function(_0x258caa,_0x4b15dd){return db[_0xb5ab('0x32')][_0xb5ab('0x4b')](_0x258caa[_0xb5ab('0x4c')],{})['then'](function(_0x13457c){var _0x54b5c8=_0x258caa[_0xb5ab('0x4d')]['get']({'plain':!![]});if(!_0x54b5c8)throw new Error(_0xb5ab('0x4e'));if(_0x54b5c8[_0xb5ab('0x4f')]===_0xb5ab('0x4d')){var _0x10de35=_0x13457c['get']({'plain':!![]});var _0x208386=_0xb5ab('0x2a');return db['UserProfileSection'][_0xb5ab('0x50')]({'where':{'name':_0x208386,'userProfileId':_0x54b5c8[_0xb5ab('0x51')]},'raw':!![]})[_0xb5ab('0x28')](function(_0x26236b){if(_0x26236b&&_0x26236b['autoAssociation']===0x0){return db[_0xb5ab('0x2b')][_0xb5ab('0x4b')]({'name':_0x10de35['name'],'resourceId':_0x10de35['id'],'type':_0x26236b[_0xb5ab('0x36')],'sectionId':_0x26236b['id']},{})[_0xb5ab('0x28')](function(){return _0x13457c;});}else{return _0x13457c;}})['catch'](function(_0x5b4b6b){logger['error'](_0xb5ab('0x52'),_0x5b4b6b);throw _0x5b4b6b;});}return _0x13457c;})[_0xb5ab('0x28')](respondWithResult(_0x4b15dd,0xc9))[_0xb5ab('0x53')](handleError(_0x4b15dd,null));};exports[_0xb5ab('0x27')]=function(_0x1a6382,_0x3b5363){if(_0x1a6382[_0xb5ab('0x4c')]['id']){delete _0x1a6382['body']['id'];}return db['Variable']['find']({'where':{'id':_0x1a6382[_0xb5ab('0x4a')]['id']}})[_0xb5ab('0x28')](handleEntityNotFound(_0x3b5363,null))[_0xb5ab('0x28')](saveUpdates(_0x1a6382['body'],null))['then'](respondWithResult(_0x3b5363,null))[_0xb5ab('0x53')](handleError(_0x3b5363,null));};exports[_0xb5ab('0x2c')]=function(_0x17b240,_0xc5d539){return db[_0xb5ab('0x32')]['find']({'where':{'id':_0x17b240[_0xb5ab('0x4a')]['id']}})[_0xb5ab('0x28')](handleEntityNotFound(_0xc5d539,null))[_0xb5ab('0x28')](removeEntity(_0xc5d539,null))[_0xb5ab('0x53')](handleError(_0xc5d539,null));};