92e3f832f448b5563ec4d4d47e7df18124c91647
[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 _0xc1dc=['length','nolimit','limit','sort','where','pick','filter','VIRTUAL','merge','include','catch','show','params','keys','includeAll','options','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Templates','UserProfileSection','find','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','save','update','then','destroy','get','error','stack','send','index','map','Template','rawAttributes','type','key','model','name','query','filters','attributes','intersection','fields'];(function(_0x26febf,_0x202a73){var _0x100caf=function(_0x2cdb15){while(--_0x2cdb15){_0x26febf['push'](_0x26febf['shift']());}};_0x100caf(++_0x202a73);}(_0xc1dc,0xc2));var _0xcc1d=function(_0x533a60,_0x4bc596){_0x533a60=_0x533a60-0x0;var _0x4e242a=_0xc1dc[_0x533a60];return _0x4e242a;};'use strict';var emlformat=require(_0xcc1d('0x0'));var rimraf=require(_0xcc1d('0x1'));var zipdir=require(_0xcc1d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xcc1d('0x3'));var moment=require(_0xcc1d('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xcc1d('0x5'));var util=require(_0xcc1d('0x6'));var path=require(_0xcc1d('0x7'));var sox=require(_0xcc1d('0x8'));var csv=require(_0xcc1d('0x9'));var ejs=require(_0xcc1d('0xa'));var fs=require('fs');var fs_extra=require(_0xcc1d('0xb'));var _=require(_0xcc1d('0xc'));var squel=require(_0xcc1d('0xd'));var crypto=require(_0xcc1d('0xe'));var jsforce=require(_0xcc1d('0xf'));var deskjs=require(_0xcc1d('0x10'));var toCsv=require(_0xcc1d('0x9'));var querystring=require(_0xcc1d('0x11'));var Papa=require(_0xcc1d('0x12'));var Redis=require(_0xcc1d('0x13'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xcc1d('0x14'));var hardwareService=require(_0xcc1d('0x15'));var logger=require(_0xcc1d('0x16'))(_0xcc1d('0x17'));var utils=require('../../config/utils');var config=require(_0xcc1d('0x18'));var licenseUtil=require(_0xcc1d('0x19'));var db=require(_0xcc1d('0x1a'))['db'];function respondWithStatusCode(_0x404748,_0x561b52){_0x561b52=_0x561b52||0xcc;return function(_0x3d9ba9){if(_0x3d9ba9){return _0x404748[_0xcc1d('0x1b')](_0x561b52);}return _0x404748[_0xcc1d('0x1c')](_0x561b52)[_0xcc1d('0x1d')]();};}function respondWithResult(_0x5dfd0b,_0x56f990){_0x56f990=_0x56f990||0xc8;return function(_0x342198){if(_0x342198){return _0x5dfd0b[_0xcc1d('0x1c')](_0x56f990)[_0xcc1d('0x1e')](_0x342198);}};}function respondWithFilteredResult(_0x3d892c,_0x34b2e7){return function(_0x386df7){if(_0x386df7){var _0x4d7310=typeof _0x34b2e7[_0xcc1d('0x1f')]===_0xcc1d('0x20')&&typeof _0x34b2e7['limit']===_0xcc1d('0x20');var _0x2f3aa9=_0x386df7[_0xcc1d('0x21')];var _0x553983=_0x4d7310?0x0:_0x34b2e7['offset'];var _0x443a35=_0x4d7310?_0x386df7[_0xcc1d('0x21')]:_0x34b2e7[_0xcc1d('0x1f')]+_0x34b2e7['limit'];var _0x141a2c;if(_0x443a35>=_0x2f3aa9){_0x443a35=_0x2f3aa9;_0x141a2c=0xc8;}else{_0x141a2c=0xce;}_0x3d892c[_0xcc1d('0x1c')](_0x141a2c);return _0x3d892c[_0xcc1d('0x22')](_0xcc1d('0x23'),_0x553983+'-'+_0x443a35+'/'+_0x2f3aa9)[_0xcc1d('0x1e')](_0x386df7);}return null;};}function patchUpdates(_0x261dec){return function(_0x9dea63){try{jsonpatch[_0xcc1d('0x24')](_0x9dea63,_0x261dec,!![]);}catch(_0x1c073d){return BPromise['reject'](_0x1c073d);}return _0x9dea63[_0xcc1d('0x25')]();};}function saveUpdates(_0x24d7cd,_0x240b10){return function(_0x3f58fa){if(_0x3f58fa){return _0x3f58fa[_0xcc1d('0x26')](_0x24d7cd)[_0xcc1d('0x27')](function(_0x5cd979){return _0x5cd979;});}return null;};}function removeEntity(_0x2a61bc,_0x4a6ff1){return function(_0x4c7def){if(_0x4c7def){return _0x4c7def[_0xcc1d('0x28')]()['then'](function(){var _0x525993=_0x4c7def[_0xcc1d('0x29')]({'plain':!![]});var _0xd62cd2='Templates';return db['UserProfileResource'][_0xcc1d('0x28')]({'where':{'type':_0xd62cd2,'resourceId':_0x525993['id']}})[_0xcc1d('0x27')](function(){return _0x4c7def;});})['then'](function(){_0x2a61bc['status'](0xcc)[_0xcc1d('0x1d')]();});}};}function handleEntityNotFound(_0x957cc1,_0x5905df){return function(_0x249475){if(!_0x249475){_0x957cc1['sendStatus'](0x194);}return _0x249475;};}function handleError(_0x38c176,_0x18f16d){_0x18f16d=_0x18f16d||0x1f4;return function(_0x182873){logger[_0xcc1d('0x2a')](_0x182873[_0xcc1d('0x2b')]);if(_0x182873['name']){delete _0x182873['name'];}_0x38c176['status'](_0x18f16d)[_0xcc1d('0x2c')](_0x182873);};}exports[_0xcc1d('0x2d')]=function(_0x1f5ebf,_0x31782a){var _0xe33f72={},_0x27be14={},_0x1a8a9f={'count':0x0,'rows':[]};var _0x5cb874=_[_0xcc1d('0x2e')](db[_0xcc1d('0x2f')][_0xcc1d('0x30')],function(_0x32b363){return{'name':_0x32b363['fieldName'],'type':_0x32b363[_0xcc1d('0x31')][_0xcc1d('0x32')]};});_0x27be14[_0xcc1d('0x33')]=_['map'](_0x5cb874,_0xcc1d('0x34'));_0x27be14[_0xcc1d('0x35')]=_['keys'](_0x1f5ebf['query']);_0x27be14[_0xcc1d('0x36')]=_['intersection'](_0x27be14[_0xcc1d('0x33')],_0x27be14[_0xcc1d('0x35')]);_0xe33f72[_0xcc1d('0x37')]=_[_0xcc1d('0x38')](_0x27be14[_0xcc1d('0x33')],qs[_0xcc1d('0x39')](_0x1f5ebf[_0xcc1d('0x35')][_0xcc1d('0x39')]));_0xe33f72[_0xcc1d('0x37')]=_0xe33f72[_0xcc1d('0x37')][_0xcc1d('0x3a')]?_0xe33f72[_0xcc1d('0x37')]:_0x27be14[_0xcc1d('0x33')];if(!_0x1f5ebf[_0xcc1d('0x35')]['hasOwnProperty'](_0xcc1d('0x3b'))){_0xe33f72[_0xcc1d('0x3c')]=qs[_0xcc1d('0x3c')](_0x1f5ebf['query']['limit']);_0xe33f72[_0xcc1d('0x1f')]=qs[_0xcc1d('0x1f')](_0x1f5ebf['query'][_0xcc1d('0x1f')]);}_0xe33f72['order']=qs['sort'](_0x1f5ebf[_0xcc1d('0x35')][_0xcc1d('0x3d')]);_0xe33f72[_0xcc1d('0x3e')]=qs[_0xcc1d('0x36')](_[_0xcc1d('0x3f')](_0x1f5ebf[_0xcc1d('0x35')],_0x27be14[_0xcc1d('0x36')]),_0x5cb874);if(_0x1f5ebf[_0xcc1d('0x35')][_0xcc1d('0x40')]){_0xe33f72['where']=_['merge'](_0xe33f72[_0xcc1d('0x3e')],{'$or':_[_0xcc1d('0x2e')](_0x5cb874,function(_0x65133c){if(_0x65133c['type']!==_0xcc1d('0x41')){var _0x4cff41={};_0x4cff41[_0x65133c[_0xcc1d('0x34')]]={'$like':'%'+_0x1f5ebf['query']['filter']+'%'};return _0x4cff41;}})});}_0xe33f72=_[_0xcc1d('0x42')]({},_0xe33f72,_0x1f5ebf['options']);var _0x977ba1={'where':_0xe33f72[_0xcc1d('0x3e')]};return db[_0xcc1d('0x2f')]['count'](_0x977ba1)[_0xcc1d('0x27')](function(_0x45f5a8){_0x1a8a9f[_0xcc1d('0x21')]=_0x45f5a8;if(_0x1f5ebf[_0xcc1d('0x35')]['includeAll']){_0xe33f72[_0xcc1d('0x43')]=[{'all':!![]}];}return db['Template']['findAll'](_0xe33f72);})[_0xcc1d('0x27')](function(_0x5863ae){_0x1a8a9f['rows']=_0x5863ae;return _0x1a8a9f;})[_0xcc1d('0x27')](respondWithFilteredResult(_0x31782a,_0xe33f72))[_0xcc1d('0x44')](handleError(_0x31782a,null));};exports[_0xcc1d('0x45')]=function(_0x16d632,_0x5703c2){var _0x1ae247={'raw':!![],'where':{'id':_0x16d632[_0xcc1d('0x46')]['id']}},_0x4a0a5c={};_0x4a0a5c[_0xcc1d('0x33')]=_[_0xcc1d('0x47')](db[_0xcc1d('0x2f')][_0xcc1d('0x30')]);_0x4a0a5c[_0xcc1d('0x35')]=_[_0xcc1d('0x47')](_0x16d632['query']);_0x4a0a5c[_0xcc1d('0x36')]=_['intersection'](_0x4a0a5c[_0xcc1d('0x33')],_0x4a0a5c[_0xcc1d('0x35')]);_0x1ae247[_0xcc1d('0x37')]=_[_0xcc1d('0x38')](_0x4a0a5c[_0xcc1d('0x33')],qs[_0xcc1d('0x39')](_0x16d632[_0xcc1d('0x35')]['fields']));_0x1ae247[_0xcc1d('0x37')]=_0x1ae247[_0xcc1d('0x37')][_0xcc1d('0x3a')]?_0x1ae247[_0xcc1d('0x37')]:_0x4a0a5c[_0xcc1d('0x33')];if(_0x16d632[_0xcc1d('0x35')][_0xcc1d('0x48')]){_0x1ae247['include']=[{'all':!![]}];}_0x1ae247=_[_0xcc1d('0x42')]({},_0x1ae247,_0x16d632[_0xcc1d('0x49')]);return db['Template']['find'](_0x1ae247)[_0xcc1d('0x27')](handleEntityNotFound(_0x5703c2,null))[_0xcc1d('0x27')](respondWithResult(_0x5703c2,null))['catch'](handleError(_0x5703c2,null));};exports[_0xcc1d('0x4a')]=function(_0x3b7447,_0x313158){return db[_0xcc1d('0x2f')][_0xcc1d('0x4a')](_0x3b7447[_0xcc1d('0x4b')],{})[_0xcc1d('0x27')](function(_0x427b4c){var _0x17ab70=_0x3b7447['user']['get']({'plain':!![]});if(!_0x17ab70)throw new Error(_0xcc1d('0x4c'));if(_0x17ab70[_0xcc1d('0x4d')]==='user'){var _0x18e1c2=_0x427b4c[_0xcc1d('0x29')]({'plain':!![]});var _0x4df47f=_0xcc1d('0x4e');return db[_0xcc1d('0x4f')][_0xcc1d('0x50')]({'where':{'name':_0x4df47f,'userProfileId':_0x17ab70['userProfileId']},'raw':!![]})[_0xcc1d('0x27')](function(_0xd5549c){if(_0xd5549c&&_0xd5549c[_0xcc1d('0x51')]===0x0){return db[_0xcc1d('0x52')][_0xcc1d('0x4a')]({'name':_0x18e1c2[_0xcc1d('0x34')],'resourceId':_0x18e1c2['id'],'type':_0xd5549c['name'],'sectionId':_0xd5549c['id']},{})[_0xcc1d('0x27')](function(){return _0x427b4c;});}else{return _0x427b4c;}})[_0xcc1d('0x44')](function(_0x25e187){logger[_0xcc1d('0x2a')](_0xcc1d('0x53'),_0x25e187);throw _0x25e187;});}return _0x427b4c;})[_0xcc1d('0x27')](respondWithResult(_0x313158,0xc9))[_0xcc1d('0x44')](handleError(_0x313158,null));};exports[_0xcc1d('0x26')]=function(_0x24df61,_0x2b84a6){if(_0x24df61[_0xcc1d('0x4b')]['id']){delete _0x24df61[_0xcc1d('0x4b')]['id'];}return db[_0xcc1d('0x2f')][_0xcc1d('0x50')]({'where':{'id':_0x24df61[_0xcc1d('0x46')]['id']}})['then'](handleEntityNotFound(_0x2b84a6,null))[_0xcc1d('0x27')](saveUpdates(_0x24df61['body'],null))[_0xcc1d('0x27')](respondWithResult(_0x2b84a6,null))['catch'](handleError(_0x2b84a6,null));};exports[_0xcc1d('0x28')]=function(_0x3ac490,_0xdfb26c){return db[_0xcc1d('0x2f')][_0xcc1d('0x50')]({'where':{'id':_0x3ac490[_0xcc1d('0x46')]['id']}})[_0xcc1d('0x27')](handleEntityNotFound(_0xdfb26c,null))[_0xcc1d('0x27')](removeEntity(_0xdfb26c,null))[_0xcc1d('0x44')](handleError(_0xdfb26c,null));};