Built motion from commit da617fac.|2.6.6
[motion2.git] / server / api / template / template.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 _0xd50f=['ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','update','then','destroy','Templates','UserProfileResource','stack','name','send','index','rawAttributes','type','model','map','keys','query','filters','intersection','attributes','fields','sort','filter','where','merge','options','Template','includeAll','include','findAll','catch','show','params','length','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse'];(function(_0x4396ed,_0x4c3568){var _0x5e046f=function(_0x3fe7a7){while(--_0x3fe7a7){_0x4396ed['push'](_0x4396ed['shift']());}};_0x5e046f(++_0x4c3568);}(_0xd50f,0x130));var _0xfd50=function(_0x33c5af,_0x13d18a){_0x33c5af=_0x33c5af-0x0;var _0x49707f=_0xd50f[_0x33c5af];return _0x49707f;};'use strict';var emlformat=require(_0xfd50('0x0'));var rimraf=require(_0xfd50('0x1'));var zipdir=require(_0xfd50('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xfd50('0x3'));var moment=require(_0xfd50('0x4'));var BPromise=require(_0xfd50('0x5'));var Mustache=require(_0xfd50('0x6'));var util=require(_0xfd50('0x7'));var path=require(_0xfd50('0x8'));var sox=require(_0xfd50('0x9'));var csv=require(_0xfd50('0xa'));var ejs=require(_0xfd50('0xb'));var fs=require('fs');var fs_extra=require(_0xfd50('0xc'));var _=require(_0xfd50('0xd'));var squel=require(_0xfd50('0xe'));var crypto=require(_0xfd50('0xf'));var jsforce=require(_0xfd50('0x10'));var deskjs=require(_0xfd50('0x11'));var toCsv=require(_0xfd50('0xa'));var querystring=require(_0xfd50('0x12'));var Papa=require(_0xfd50('0x13'));var Redis=require(_0xfd50('0x14'));var authService=require('../../components/auth/service');var qs=require(_0xfd50('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xfd50('0x16'));var logger=require(_0xfd50('0x17'))(_0xfd50('0x18'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xfd50('0x19'));var db=require(_0xfd50('0x1a'))['db'];function respondWithStatusCode(_0x5450aa,_0x55f40f){_0x55f40f=_0x55f40f||0xcc;return function(_0x37374d){if(_0x37374d){return _0x5450aa[_0xfd50('0x1b')](_0x55f40f);}return _0x5450aa[_0xfd50('0x1c')](_0x55f40f)[_0xfd50('0x1d')]();};}function respondWithResult(_0x53f7c3,_0x5a6990){_0x5a6990=_0x5a6990||0xc8;return function(_0x5babbc){if(_0x5babbc){return _0x53f7c3[_0xfd50('0x1c')](_0x5a6990)[_0xfd50('0x1e')](_0x5babbc);}};}function respondWithFilteredResult(_0x27cb23,_0x2d554f){return function(_0x5c333b){if(_0x5c333b){var _0x9bfcf9=typeof _0x2d554f[_0xfd50('0x1f')]===_0xfd50('0x20')&&typeof _0x2d554f[_0xfd50('0x21')]===_0xfd50('0x20');var _0x4aa796=_0x5c333b[_0xfd50('0x22')];var _0x64dbcf=_0x9bfcf9?0x0:_0x2d554f[_0xfd50('0x1f')];var _0x158a87=_0x9bfcf9?_0x5c333b[_0xfd50('0x22')]:_0x2d554f[_0xfd50('0x1f')]+_0x2d554f[_0xfd50('0x21')];var _0x4d6cf4;if(_0x158a87>=_0x4aa796){_0x158a87=_0x4aa796;_0x4d6cf4=0xc8;}else{_0x4d6cf4=0xce;}_0x27cb23[_0xfd50('0x1c')](_0x4d6cf4);return _0x27cb23[_0xfd50('0x23')](_0xfd50('0x24'),_0x64dbcf+'-'+_0x158a87+'/'+_0x4aa796)[_0xfd50('0x1e')](_0x5c333b);}return null;};}function patchUpdates(_0x99caad){return function(_0x19ac43){try{jsonpatch['apply'](_0x19ac43,_0x99caad,!![]);}catch(_0x171868){return BPromise[_0xfd50('0x25')](_0x171868);}return _0x19ac43['save']();};}function saveUpdates(_0x1943e5,_0x305331){return function(_0x5c9cd6){if(_0x5c9cd6){return _0x5c9cd6[_0xfd50('0x26')](_0x1943e5)[_0xfd50('0x27')](function(_0x4d74fa){return _0x4d74fa;});}return null;};}function removeEntity(_0x2694fc,_0x4c1875){return function(_0x3b1a8c){if(_0x3b1a8c){return _0x3b1a8c[_0xfd50('0x28')]()[_0xfd50('0x27')](function(){var _0x367558=_0x3b1a8c['get']({'plain':!![]});var _0x210210=_0xfd50('0x29');return db[_0xfd50('0x2a')][_0xfd50('0x28')]({'where':{'type':_0x210210,'resourceId':_0x367558['id']}})[_0xfd50('0x27')](function(){return _0x3b1a8c;});})['then'](function(){_0x2694fc[_0xfd50('0x1c')](0xcc)[_0xfd50('0x1d')]();});}};}function handleEntityNotFound(_0x3b6035,_0x1ea9c5){return function(_0x48f390){if(!_0x48f390){_0x3b6035['sendStatus'](0x194);}return _0x48f390;};}function handleError(_0x93394e,_0x37bbad){_0x37bbad=_0x37bbad||0x1f4;return function(_0x463e25){logger['error'](_0x463e25[_0xfd50('0x2b')]);if(_0x463e25[_0xfd50('0x2c')]){delete _0x463e25[_0xfd50('0x2c')];}_0x93394e[_0xfd50('0x1c')](_0x37bbad)[_0xfd50('0x2d')](_0x463e25);};}exports[_0xfd50('0x2e')]=function(_0x49cda4,_0x4796da){var _0x30a132={},_0xf6a698={},_0x39284f={'count':0x0,'rows':[]};var _0x111635=_['map'](db['Template'][_0xfd50('0x2f')],function(_0xafa0b5){return{'name':_0xafa0b5['fieldName'],'type':_0xafa0b5[_0xfd50('0x30')]['key']};});_0xf6a698[_0xfd50('0x31')]=_[_0xfd50('0x32')](_0x111635,_0xfd50('0x2c'));_0xf6a698['query']=_[_0xfd50('0x33')](_0x49cda4[_0xfd50('0x34')]);_0xf6a698[_0xfd50('0x35')]=_[_0xfd50('0x36')](_0xf6a698[_0xfd50('0x31')],_0xf6a698[_0xfd50('0x34')]);_0x30a132[_0xfd50('0x37')]=_[_0xfd50('0x36')](_0xf6a698['model'],qs[_0xfd50('0x38')](_0x49cda4[_0xfd50('0x34')]['fields']));_0x30a132[_0xfd50('0x37')]=_0x30a132['attributes']['length']?_0x30a132[_0xfd50('0x37')]:_0xf6a698[_0xfd50('0x31')];if(!_0x49cda4[_0xfd50('0x34')]['hasOwnProperty']('nolimit')){_0x30a132[_0xfd50('0x21')]=qs['limit'](_0x49cda4[_0xfd50('0x34')]['limit']);_0x30a132[_0xfd50('0x1f')]=qs[_0xfd50('0x1f')](_0x49cda4[_0xfd50('0x34')][_0xfd50('0x1f')]);}_0x30a132['order']=qs[_0xfd50('0x39')](_0x49cda4['query'][_0xfd50('0x39')]);_0x30a132['where']=qs['filters'](_['pick'](_0x49cda4[_0xfd50('0x34')],_0xf6a698[_0xfd50('0x35')]),_0x111635);if(_0x49cda4['query'][_0xfd50('0x3a')]){_0x30a132[_0xfd50('0x3b')]=_[_0xfd50('0x3c')](_0x30a132['where'],{'$or':_[_0xfd50('0x32')](_0x111635,function(_0x22067c){if(_0x22067c[_0xfd50('0x30')]!=='VIRTUAL'){var _0x50ffde={};_0x50ffde[_0x22067c[_0xfd50('0x2c')]]={'$like':'%'+_0x49cda4[_0xfd50('0x34')][_0xfd50('0x3a')]+'%'};return _0x50ffde;}})});}_0x30a132=_[_0xfd50('0x3c')]({},_0x30a132,_0x49cda4[_0xfd50('0x3d')]);var _0xf70485={'where':_0x30a132[_0xfd50('0x3b')]};return db[_0xfd50('0x3e')][_0xfd50('0x22')](_0xf70485)[_0xfd50('0x27')](function(_0x1d89cb){_0x39284f[_0xfd50('0x22')]=_0x1d89cb;if(_0x49cda4[_0xfd50('0x34')][_0xfd50('0x3f')]){_0x30a132[_0xfd50('0x40')]=[{'all':!![]}];}return db['Template'][_0xfd50('0x41')](_0x30a132);})[_0xfd50('0x27')](function(_0x3a8b7b){_0x39284f['rows']=_0x3a8b7b;return _0x39284f;})[_0xfd50('0x27')](respondWithFilteredResult(_0x4796da,_0x30a132))[_0xfd50('0x42')](handleError(_0x4796da,null));};exports[_0xfd50('0x43')]=function(_0x1ee0da,_0x445be5){var _0x56c49c={'raw':!![],'where':{'id':_0x1ee0da[_0xfd50('0x44')]['id']}},_0x4e9f10={};_0x4e9f10['model']=_['keys'](db[_0xfd50('0x3e')]['rawAttributes']);_0x4e9f10[_0xfd50('0x34')]=_[_0xfd50('0x33')](_0x1ee0da[_0xfd50('0x34')]);_0x4e9f10[_0xfd50('0x35')]=_[_0xfd50('0x36')](_0x4e9f10['model'],_0x4e9f10[_0xfd50('0x34')]);_0x56c49c[_0xfd50('0x37')]=_[_0xfd50('0x36')](_0x4e9f10[_0xfd50('0x31')],qs[_0xfd50('0x38')](_0x1ee0da[_0xfd50('0x34')]['fields']));_0x56c49c[_0xfd50('0x37')]=_0x56c49c[_0xfd50('0x37')][_0xfd50('0x45')]?_0x56c49c[_0xfd50('0x37')]:_0x4e9f10[_0xfd50('0x31')];if(_0x1ee0da[_0xfd50('0x34')][_0xfd50('0x3f')]){_0x56c49c[_0xfd50('0x40')]=[{'all':!![]}];}_0x56c49c=_[_0xfd50('0x3c')]({},_0x56c49c,_0x1ee0da[_0xfd50('0x3d')]);return db[_0xfd50('0x3e')][_0xfd50('0x46')](_0x56c49c)[_0xfd50('0x27')](handleEntityNotFound(_0x445be5,null))[_0xfd50('0x27')](respondWithResult(_0x445be5,null))[_0xfd50('0x42')](handleError(_0x445be5,null));};exports[_0xfd50('0x47')]=function(_0x158af4,_0x2584c2){return db['Template'][_0xfd50('0x47')](_0x158af4[_0xfd50('0x48')],{})[_0xfd50('0x27')](function(_0x16abe5){var _0x477e2c=_0x158af4['user'][_0xfd50('0x49')]({'plain':!![]});if(!_0x477e2c)throw new Error(_0xfd50('0x4a'));if(_0x477e2c[_0xfd50('0x4b')]==='user'){var _0x3834fc=_0x16abe5[_0xfd50('0x49')]({'plain':!![]});var _0x506523=_0xfd50('0x29');return db[_0xfd50('0x4c')]['find']({'where':{'name':_0x506523,'userProfileId':_0x477e2c[_0xfd50('0x4d')]},'raw':!![]})['then'](function(_0x17ed75){if(_0x17ed75&&_0x17ed75[_0xfd50('0x4e')]===0x0){return db['UserProfileResource'][_0xfd50('0x47')]({'name':_0x3834fc[_0xfd50('0x2c')],'resourceId':_0x3834fc['id'],'type':_0x17ed75[_0xfd50('0x2c')],'sectionId':_0x17ed75['id']},{})[_0xfd50('0x27')](function(){return _0x16abe5;});}else{return _0x16abe5;}})['catch'](function(_0x32bacb){logger[_0xfd50('0x4f')](_0xfd50('0x50'),_0x32bacb);throw _0x32bacb;});}return _0x16abe5;})['then'](respondWithResult(_0x2584c2,0xc9))['catch'](handleError(_0x2584c2,null));};exports[_0xfd50('0x26')]=function(_0x4ba931,_0x1ca6b5){if(_0x4ba931[_0xfd50('0x48')]['id']){delete _0x4ba931[_0xfd50('0x48')]['id'];}return db['Template'][_0xfd50('0x46')]({'where':{'id':_0x4ba931[_0xfd50('0x44')]['id']}})[_0xfd50('0x27')](handleEntityNotFound(_0x1ca6b5,null))[_0xfd50('0x27')](saveUpdates(_0x4ba931[_0xfd50('0x48')],null))['then'](respondWithResult(_0x1ca6b5,null))[_0xfd50('0x42')](handleError(_0x1ca6b5,null));};exports[_0xfd50('0x28')]=function(_0x895cc6,_0x3a7e88){return db['Template'][_0xfd50('0x46')]({'where':{'id':_0x895cc6[_0xfd50('0x44')]['id']}})[_0xfd50('0x27')](handleEntityNotFound(_0x3a7e88,null))[_0xfd50('0x27')](removeEntity(_0x3a7e88,null))['catch'](handleError(_0x3a7e88,null));};