29da09dabbfa42b973d015b7b278666dcc155ae6
[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 _0x69e3=['query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','sort','pick','filter','merge','where','VIRTUAL','count','includeAll','include','findAll','rows','catch','show','params','length','options','find','create','body','user','Templates','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','status','end','json','offset','Content-Range','apply','reject','save','then','destroy','get','UserProfileResource','error','name','index','map','Template','rawAttributes','fieldName','type','key','model'];(function(_0x3aa640,_0x430b73){var _0x1cabbc=function(_0x1d0586){while(--_0x1d0586){_0x3aa640['push'](_0x3aa640['shift']());}};_0x1cabbc(++_0x430b73);}(_0x69e3,0x114));var _0x369e=function(_0x3f5bb6,_0x43da3d){_0x3f5bb6=_0x3f5bb6-0x0;var _0x5538c8=_0x69e3[_0x3f5bb6];return _0x5538c8;};'use strict';var pdf=require(_0x369e('0x0'));var emlformat=require(_0x369e('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x369e('0x2'));var jsonpatch=require(_0x369e('0x3'));var rp=require(_0x369e('0x4'));var moment=require(_0x369e('0x5'));var BPromise=require(_0x369e('0x6'));var Mustache=require('mustache');var util=require(_0x369e('0x7'));var path=require('path');var sox=require(_0x369e('0x8'));var csv=require(_0x369e('0x9'));var ejs=require(_0x369e('0xa'));var fs=require('fs');var _=require(_0x369e('0xb'));var squel=require(_0x369e('0xc'));var crypto=require(_0x369e('0xd'));var jsforce=require(_0x369e('0xe'));var deskjs=require(_0x369e('0xf'));var toCsv=require(_0x369e('0x9'));var querystring=require(_0x369e('0x10'));var Papa=require('papaparse');var Redis=require(_0x369e('0x11'));var authService=require(_0x369e('0x12'));var qs=require(_0x369e('0x13'));var as=require(_0x369e('0x14'));var hardwareService=require(_0x369e('0x15'));var logger=require(_0x369e('0x16'))(_0x369e('0x17'));var utils=require('../../config/utils');var config=require(_0x369e('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xdbfe01,_0x3e8ba6){_0x3e8ba6=_0x3e8ba6||0xcc;return function(_0xd34c49){if(_0xd34c49){return _0xdbfe01[_0x369e('0x19')](_0x3e8ba6);}return _0xdbfe01[_0x369e('0x1a')](_0x3e8ba6)[_0x369e('0x1b')]();};}function respondWithResult(_0x1f9c0a,_0x11d32f){_0x11d32f=_0x11d32f||0xc8;return function(_0x44efce){if(_0x44efce){return _0x1f9c0a[_0x369e('0x1a')](_0x11d32f)[_0x369e('0x1c')](_0x44efce);}};}function respondWithFilteredResult(_0x2e9935,_0x5ceb32){return function(_0x5233c9){if(_0x5233c9){var _0x5027b2=_0x5233c9['count'],_0x483792=_0x5ceb32[_0x369e('0x1d')],_0x29ceb1=_0x5ceb32[_0x369e('0x1d')]+_0x5ceb32['limit'],_0x5f2bad;if(_0x29ceb1>=_0x5027b2){_0x29ceb1=_0x5027b2;_0x5f2bad=0xc8;}else{_0x5f2bad=0xce;}_0x2e9935[_0x369e('0x1a')](_0x5f2bad);return _0x2e9935['set'](_0x369e('0x1e'),_0x483792+'-'+_0x29ceb1+'/'+_0x5027b2)[_0x369e('0x1c')](_0x5233c9);}return null;};}function patchUpdates(_0x1edb19){return function(_0x54e9ce){try{jsonpatch[_0x369e('0x1f')](_0x54e9ce,_0x1edb19,!![]);}catch(_0x58df2c){return BPromise[_0x369e('0x20')](_0x58df2c);}return _0x54e9ce[_0x369e('0x21')]();};}function saveUpdates(_0x28dc4b,_0x4f5fe0){return function(_0xbf0edc){if(_0xbf0edc){return _0xbf0edc['update'](_0x28dc4b)[_0x369e('0x22')](function(_0x234f29){return _0x234f29;});}return null;};}function removeEntity(_0x1d288e,_0x15d5b1){return function(_0xccbdab){if(_0xccbdab){return _0xccbdab[_0x369e('0x23')]()[_0x369e('0x22')](function(){var _0x308aee=_0xccbdab[_0x369e('0x24')]({'plain':!![]});var _0x515639='Templates';return db[_0x369e('0x25')][_0x369e('0x23')]({'where':{'type':_0x515639,'resourceId':_0x308aee['id']}})['then'](function(){return _0xccbdab;});})[_0x369e('0x22')](function(){_0x1d288e[_0x369e('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5acd4f,_0x16a382){return function(_0x4a8650){if(!_0x4a8650){_0x5acd4f[_0x369e('0x19')](0x194);}return _0x4a8650;};}function handleError(_0x56ae2b,_0x33902e){_0x33902e=_0x33902e||0x1f4;return function(_0x18ed52){logger[_0x369e('0x26')](_0x18ed52['stack']);if(_0x18ed52['name']){delete _0x18ed52[_0x369e('0x27')];}_0x56ae2b[_0x369e('0x1a')](_0x33902e)['send'](_0x18ed52);};}exports[_0x369e('0x28')]=function(_0x6e1d8f,_0x4ada94){var _0x234316={},_0x4def12={},_0x535d65={'count':0x0,'rows':[]};var _0x5f4eb7=_[_0x369e('0x29')](db[_0x369e('0x2a')][_0x369e('0x2b')],function(_0xa985d9){return{'name':_0xa985d9[_0x369e('0x2c')],'type':_0xa985d9[_0x369e('0x2d')][_0x369e('0x2e')]};});_0x4def12[_0x369e('0x2f')]=_['map'](_0x5f4eb7,_0x369e('0x27'));_0x4def12[_0x369e('0x30')]=_[_0x369e('0x31')](_0x6e1d8f[_0x369e('0x30')]);_0x4def12[_0x369e('0x32')]=_[_0x369e('0x33')](_0x4def12[_0x369e('0x2f')],_0x4def12[_0x369e('0x30')]);_0x234316[_0x369e('0x34')]=_[_0x369e('0x33')](_0x4def12[_0x369e('0x2f')],qs[_0x369e('0x35')](_0x6e1d8f[_0x369e('0x30')][_0x369e('0x35')]));_0x234316[_0x369e('0x34')]=_0x234316['attributes']['length']?_0x234316[_0x369e('0x34')]:_0x4def12[_0x369e('0x2f')];if(!_0x6e1d8f[_0x369e('0x30')][_0x369e('0x36')](_0x369e('0x37'))){_0x234316[_0x369e('0x38')]=qs[_0x369e('0x38')](_0x6e1d8f[_0x369e('0x30')][_0x369e('0x38')]);_0x234316[_0x369e('0x1d')]=qs[_0x369e('0x1d')](_0x6e1d8f[_0x369e('0x30')][_0x369e('0x1d')]);}_0x234316['order']=qs[_0x369e('0x39')](_0x6e1d8f['query'][_0x369e('0x39')]);_0x234316['where']=qs[_0x369e('0x32')](_[_0x369e('0x3a')](_0x6e1d8f['query'],_0x4def12['filters']),_0x5f4eb7);if(_0x6e1d8f[_0x369e('0x30')][_0x369e('0x3b')]){_0x234316['where']=_[_0x369e('0x3c')](_0x234316[_0x369e('0x3d')],{'$or':_[_0x369e('0x29')](_0x5f4eb7,function(_0x540fc2){if(_0x540fc2[_0x369e('0x2d')]!==_0x369e('0x3e')){var _0x5b6f36={};_0x5b6f36[_0x540fc2[_0x369e('0x27')]]={'$like':'%'+_0x6e1d8f['query'][_0x369e('0x3b')]+'%'};return _0x5b6f36;}})});}_0x234316=_[_0x369e('0x3c')]({},_0x234316,_0x6e1d8f['options']);var _0x4deeb9={'where':_0x234316['where']};return db[_0x369e('0x2a')][_0x369e('0x3f')](_0x4deeb9)[_0x369e('0x22')](function(_0x425fde){_0x535d65[_0x369e('0x3f')]=_0x425fde;if(_0x6e1d8f[_0x369e('0x30')][_0x369e('0x40')]){_0x234316[_0x369e('0x41')]=[{'all':!![]}];}return db[_0x369e('0x2a')][_0x369e('0x42')](_0x234316);})['then'](function(_0x3b0c1d){_0x535d65[_0x369e('0x43')]=_0x3b0c1d;return _0x535d65;})[_0x369e('0x22')](respondWithFilteredResult(_0x4ada94,_0x234316))[_0x369e('0x44')](handleError(_0x4ada94,null));};exports[_0x369e('0x45')]=function(_0xc20c85,_0x5577ee){var _0x4d259d={'raw':!![],'where':{'id':_0xc20c85[_0x369e('0x46')]['id']}},_0x5bbb0c={};_0x5bbb0c['model']=_[_0x369e('0x31')](db['Template']['rawAttributes']);_0x5bbb0c['query']=_[_0x369e('0x31')](_0xc20c85['query']);_0x5bbb0c[_0x369e('0x32')]=_[_0x369e('0x33')](_0x5bbb0c['model'],_0x5bbb0c[_0x369e('0x30')]);_0x4d259d[_0x369e('0x34')]=_[_0x369e('0x33')](_0x5bbb0c['model'],qs[_0x369e('0x35')](_0xc20c85[_0x369e('0x30')]['fields']));_0x4d259d[_0x369e('0x34')]=_0x4d259d[_0x369e('0x34')][_0x369e('0x47')]?_0x4d259d[_0x369e('0x34')]:_0x5bbb0c[_0x369e('0x2f')];if(_0xc20c85[_0x369e('0x30')]['includeAll']){_0x4d259d[_0x369e('0x41')]=[{'all':!![]}];}_0x4d259d=_[_0x369e('0x3c')]({},_0x4d259d,_0xc20c85[_0x369e('0x48')]);return db[_0x369e('0x2a')][_0x369e('0x49')](_0x4d259d)[_0x369e('0x22')](handleEntityNotFound(_0x5577ee,null))['then'](respondWithResult(_0x5577ee,null))[_0x369e('0x44')](handleError(_0x5577ee,null));};exports[_0x369e('0x4a')]=function(_0x3f86ad,_0x4ea9cf){return db['Template'][_0x369e('0x4a')](_0x3f86ad[_0x369e('0x4b')],{})[_0x369e('0x22')](function(_0x339983){var _0x5cc820=_0x3f86ad[_0x369e('0x4c')][_0x369e('0x24')]({'plain':!![]});if(!_0x5cc820)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5cc820['role']===_0x369e('0x4c')){var _0x38cf66=_0x339983[_0x369e('0x24')]({'plain':!![]});var _0x5a76aa=_0x369e('0x4d');return db['UserProfileSection'][_0x369e('0x49')]({'where':{'name':_0x5a76aa,'userProfileId':_0x5cc820[_0x369e('0x4e')]},'raw':!![]})[_0x369e('0x22')](function(_0x2a7413){if(_0x2a7413&&_0x2a7413[_0x369e('0x4f')]===0x0){return db[_0x369e('0x25')][_0x369e('0x4a')]({'name':_0x38cf66[_0x369e('0x27')],'resourceId':_0x38cf66['id'],'type':_0x2a7413[_0x369e('0x27')],'sectionId':_0x2a7413['id']},{})[_0x369e('0x22')](function(){return _0x339983;});}else{return _0x339983;}})[_0x369e('0x44')](function(_0x170025){logger[_0x369e('0x26')](_0x369e('0x50'),_0x170025);throw _0x170025;});}return _0x339983;})[_0x369e('0x22')](respondWithResult(_0x4ea9cf,0xc9))[_0x369e('0x44')](handleError(_0x4ea9cf,null));};exports['update']=function(_0x2f57f5,_0x13b155){if(_0x2f57f5['body']['id']){delete _0x2f57f5[_0x369e('0x4b')]['id'];}return db[_0x369e('0x2a')][_0x369e('0x49')]({'where':{'id':_0x2f57f5[_0x369e('0x46')]['id']}})['then'](handleEntityNotFound(_0x13b155,null))[_0x369e('0x22')](saveUpdates(_0x2f57f5['body'],null))['then'](respondWithResult(_0x13b155,null))[_0x369e('0x44')](handleError(_0x13b155,null));};exports[_0x369e('0x23')]=function(_0x81f22,_0x48b3ea){return db[_0x369e('0x2a')]['find']({'where':{'id':_0x81f22[_0x369e('0x46')]['id']}})[_0x369e('0x22')](handleEntityNotFound(_0x48b3ea,null))[_0x369e('0x22')](removeEntity(_0x48b3ea,null))[_0x369e('0x44')](handleError(_0x48b3ea,null));};