Built motion from commit (unavailable).|2.4.17
[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 _0x342d=['limit','set','Content-Range','apply','update','then','destroy','Variables','error','stack','name','send','index','Variable','fieldName','type','key','model','map','query','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','pick','where','VIRTUAL','merge','options','includeAll','include','catch','show','params','keys','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','html-pdf','eml-format','zip-dir','moment','bluebird','mustache','util','path','to-csv','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','status','end','json','count','offset'];(function(_0xb9316a,_0x4bcfad){var _0x49c9bd=function(_0x1aaaa9){while(--_0x1aaaa9){_0xb9316a['push'](_0xb9316a['shift']());}};_0x49c9bd(++_0x4bcfad);}(_0x342d,0x197));var _0xd342=function(_0x2914e5,_0x15564f){_0x2914e5=_0x2914e5-0x0;var _0x58299b=_0x342d[_0x2914e5];return _0x58299b;};'use strict';var pdf=require(_0xd342('0x0'));var emlformat=require(_0xd342('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xd342('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xd342('0x3'));var BPromise=require(_0xd342('0x4'));var Mustache=require(_0xd342('0x5'));var util=require(_0xd342('0x6'));var path=require(_0xd342('0x7'));var sox=require('sox');var csv=require(_0xd342('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xd342('0x9'));var jsforce=require(_0xd342('0xa'));var deskjs=require(_0xd342('0xb'));var toCsv=require('to-csv');var querystring=require(_0xd342('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xd342('0xd'));var as=require(_0xd342('0xe'));var hardwareService=require(_0xd342('0xf'));var logger=require(_0xd342('0x10'))(_0xd342('0x11'));var utils=require('../../config/utils');var config=require(_0xd342('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4279de,_0x252fef){_0x252fef=_0x252fef||0xcc;return function(_0x313dd8){if(_0x313dd8){return _0x4279de[_0xd342('0x13')](_0x252fef);}return _0x4279de[_0xd342('0x14')](_0x252fef)[_0xd342('0x15')]();};}function respondWithResult(_0x201495,_0x69447c){_0x69447c=_0x69447c||0xc8;return function(_0xe00f96){if(_0xe00f96){return _0x201495[_0xd342('0x14')](_0x69447c)[_0xd342('0x16')](_0xe00f96);}};}function respondWithFilteredResult(_0x333c43,_0x459dbb){return function(_0x19eaa5){if(_0x19eaa5){var _0x518181=_0x19eaa5[_0xd342('0x17')],_0x4e4e86=_0x459dbb[_0xd342('0x18')],_0x2a5d77=_0x459dbb[_0xd342('0x18')]+_0x459dbb[_0xd342('0x19')],_0x156de2;if(_0x2a5d77>=_0x518181){_0x2a5d77=_0x518181;_0x156de2=0xc8;}else{_0x156de2=0xce;}_0x333c43[_0xd342('0x14')](_0x156de2);return _0x333c43[_0xd342('0x1a')](_0xd342('0x1b'),_0x4e4e86+'-'+_0x2a5d77+'/'+_0x518181)['json'](_0x19eaa5);}return null;};}function patchUpdates(_0x3d26ab){return function(_0x26c6fa){try{jsonpatch[_0xd342('0x1c')](_0x26c6fa,_0x3d26ab,!![]);}catch(_0x2e7b29){return BPromise['reject'](_0x2e7b29);}return _0x26c6fa['save']();};}function saveUpdates(_0x149ca0,_0xc160ab){return function(_0x21dbf6){if(_0x21dbf6){return _0x21dbf6[_0xd342('0x1d')](_0x149ca0)[_0xd342('0x1e')](function(_0x186ab8){return _0x186ab8;});}return null;};}function removeEntity(_0x1e5473,_0x13c335){return function(_0x4f2443){if(_0x4f2443){return _0x4f2443[_0xd342('0x1f')]()['then'](function(){var _0x540977=_0x4f2443['get']({'plain':!![]});var _0x5addbc=_0xd342('0x20');return db['UserProfileResource'][_0xd342('0x1f')]({'where':{'type':_0x5addbc,'resourceId':_0x540977['id']}})[_0xd342('0x1e')](function(){return _0x4f2443;});})[_0xd342('0x1e')](function(){_0x1e5473[_0xd342('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1264de,_0x434d85){return function(_0x4dc57a){if(!_0x4dc57a){_0x1264de['sendStatus'](0x194);}return _0x4dc57a;};}function handleError(_0x14e473,_0x48803d){_0x48803d=_0x48803d||0x1f4;return function(_0x4a8d2c){logger[_0xd342('0x21')](_0x4a8d2c[_0xd342('0x22')]);if(_0x4a8d2c[_0xd342('0x23')]){delete _0x4a8d2c[_0xd342('0x23')];}_0x14e473[_0xd342('0x14')](_0x48803d)[_0xd342('0x24')](_0x4a8d2c);};}exports[_0xd342('0x25')]=function(_0x3f82e7,_0x54e785){var _0x37d4fa={},_0x2e71ef={},_0x44e52c={'count':0x0,'rows':[]};var _0x448a92=_['map'](db[_0xd342('0x26')]['rawAttributes'],function(_0x280f92){return{'name':_0x280f92[_0xd342('0x27')],'type':_0x280f92[_0xd342('0x28')][_0xd342('0x29')]};});_0x2e71ef[_0xd342('0x2a')]=_[_0xd342('0x2b')](_0x448a92,_0xd342('0x23'));_0x2e71ef['query']=_['keys'](_0x3f82e7[_0xd342('0x2c')]);_0x2e71ef[_0xd342('0x2d')]=_['intersection'](_0x2e71ef[_0xd342('0x2a')],_0x2e71ef[_0xd342('0x2c')]);_0x37d4fa[_0xd342('0x2e')]=_[_0xd342('0x2f')](_0x2e71ef[_0xd342('0x2a')],qs[_0xd342('0x30')](_0x3f82e7[_0xd342('0x2c')][_0xd342('0x30')]));_0x37d4fa[_0xd342('0x2e')]=_0x37d4fa[_0xd342('0x2e')][_0xd342('0x31')]?_0x37d4fa[_0xd342('0x2e')]:_0x2e71ef[_0xd342('0x2a')];if(!_0x3f82e7[_0xd342('0x2c')][_0xd342('0x32')]('nolimit')){_0x37d4fa[_0xd342('0x19')]=qs[_0xd342('0x19')](_0x3f82e7[_0xd342('0x2c')]['limit']);_0x37d4fa[_0xd342('0x18')]=qs[_0xd342('0x18')](_0x3f82e7[_0xd342('0x2c')]['offset']);}_0x37d4fa[_0xd342('0x33')]=qs[_0xd342('0x34')](_0x3f82e7[_0xd342('0x2c')][_0xd342('0x34')]);_0x37d4fa['where']=qs[_0xd342('0x2d')](_[_0xd342('0x35')](_0x3f82e7['query'],_0x2e71ef[_0xd342('0x2d')]));if(_0x3f82e7[_0xd342('0x2c')]['filter']){_0x37d4fa[_0xd342('0x36')]=_['merge'](_0x37d4fa[_0xd342('0x36')],{'$or':_[_0xd342('0x2b')](_0x448a92,function(_0x16f59e){if(_0x16f59e['type']!==_0xd342('0x37')){var _0x264d72={};_0x264d72[_0x16f59e[_0xd342('0x23')]]={'$like':'%'+_0x3f82e7[_0xd342('0x2c')]['filter']+'%'};return _0x264d72;}})});}_0x37d4fa=_[_0xd342('0x38')]({},_0x37d4fa,_0x3f82e7[_0xd342('0x39')]);var _0x5466e1={'where':_0x37d4fa[_0xd342('0x36')]};return db[_0xd342('0x26')][_0xd342('0x17')](_0x5466e1)[_0xd342('0x1e')](function(_0x1ccaa2){_0x44e52c['count']=_0x1ccaa2;if(_0x3f82e7['query'][_0xd342('0x3a')]){_0x37d4fa[_0xd342('0x3b')]=[{'all':!![]}];}return db[_0xd342('0x26')]['findAll'](_0x37d4fa);})[_0xd342('0x1e')](function(_0x375408){_0x44e52c['rows']=_0x375408;return _0x44e52c;})[_0xd342('0x1e')](respondWithFilteredResult(_0x54e785,_0x37d4fa))[_0xd342('0x3c')](handleError(_0x54e785,null));};exports[_0xd342('0x3d')]=function(_0x2dcecf,_0x15d694){var _0x4076e6={'raw':!![],'where':{'id':_0x2dcecf[_0xd342('0x3e')]['id']}},_0x437a8d={};_0x437a8d[_0xd342('0x2a')]=_[_0xd342('0x3f')](db[_0xd342('0x26')]['rawAttributes']);_0x437a8d['query']=_['keys'](_0x2dcecf['query']);_0x437a8d[_0xd342('0x2d')]=_[_0xd342('0x2f')](_0x437a8d[_0xd342('0x2a')],_0x437a8d[_0xd342('0x2c')]);_0x4076e6[_0xd342('0x2e')]=_['intersection'](_0x437a8d[_0xd342('0x2a')],qs['fields'](_0x2dcecf['query']['fields']));_0x4076e6[_0xd342('0x2e')]=_0x4076e6[_0xd342('0x2e')]['length']?_0x4076e6['attributes']:_0x437a8d[_0xd342('0x2a')];if(_0x2dcecf['query']['includeAll']){_0x4076e6[_0xd342('0x3b')]=[{'all':!![]}];}_0x4076e6=_[_0xd342('0x38')]({},_0x4076e6,_0x2dcecf[_0xd342('0x39')]);return db['Variable'][_0xd342('0x40')](_0x4076e6)['then'](handleEntityNotFound(_0x15d694,null))[_0xd342('0x1e')](respondWithResult(_0x15d694,null))[_0xd342('0x3c')](handleError(_0x15d694,null));};exports[_0xd342('0x41')]=function(_0x5986f3,_0x46a1c5){return db[_0xd342('0x26')][_0xd342('0x41')](_0x5986f3[_0xd342('0x42')],{})[_0xd342('0x1e')](function(_0x125953){var _0x2b899d=_0x5986f3[_0xd342('0x43')][_0xd342('0x44')]({'plain':!![]});if(!_0x2b899d)throw new Error(_0xd342('0x45'));if(_0x2b899d['role']===_0xd342('0x43')){var _0x3d9192=_0x125953[_0xd342('0x44')]({'plain':!![]});var _0x25abab='Variables';return db[_0xd342('0x46')][_0xd342('0x40')]({'where':{'name':_0x25abab,'userProfileId':_0x2b899d['userProfileId']},'raw':!![]})['then'](function(_0x485f93){if(_0x485f93&&_0x485f93[_0xd342('0x47')]===0x0){return db['UserProfileResource']['create']({'name':_0x3d9192[_0xd342('0x23')],'resourceId':_0x3d9192['id'],'type':_0x485f93['name'],'sectionId':_0x485f93['id']},{})[_0xd342('0x1e')](function(){return _0x125953;});}else{return _0x125953;}})[_0xd342('0x3c')](function(_0xde50d3){logger[_0xd342('0x21')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xde50d3);throw _0xde50d3;});}return _0x125953;})['then'](respondWithResult(_0x46a1c5,0xc9))[_0xd342('0x3c')](handleError(_0x46a1c5,null));};exports[_0xd342('0x1d')]=function(_0x4bbbb1,_0x1fd6a8){if(_0x4bbbb1[_0xd342('0x42')]['id']){delete _0x4bbbb1['body']['id'];}return db[_0xd342('0x26')]['find']({'where':{'id':_0x4bbbb1[_0xd342('0x3e')]['id']}})[_0xd342('0x1e')](handleEntityNotFound(_0x1fd6a8,null))[_0xd342('0x1e')](saveUpdates(_0x4bbbb1[_0xd342('0x42')],null))['then'](respondWithResult(_0x1fd6a8,null))['catch'](handleError(_0x1fd6a8,null));};exports['destroy']=function(_0xe8d170,_0x1a71bc){return db[_0xd342('0x26')][_0xd342('0x40')]({'where':{'id':_0xe8d170[_0xd342('0x3e')]['id']}})[_0xd342('0x1e')](handleEntityNotFound(_0x1a71bc,null))[_0xd342('0x1e')](removeEntity(_0x1a71bc,null))[_0xd342('0x3c')](handleError(_0x1a71bc,null));};