Built motion from commit d6d69adf.|2.6.33
[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 _0x9b95=['Templates','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','limit','count','set','Content-Range','save','update','then','get','UserProfileResource','destroy','error','name','send','index','map','Template','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','where','filter','merge','options','includeAll','include','rows','catch','show','params','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role'];(function(_0x19cf1d,_0xee9800){var _0x1f57d9=function(_0x26161e){while(--_0x26161e){_0x19cf1d['push'](_0x19cf1d['shift']());}};_0x1f57d9(++_0xee9800);}(_0x9b95,0x140));var _0x59b9=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x9b95[_0x57b54c];return _0x59cc19;};'use strict';var emlformat=require(_0x59b9('0x0'));var rimraf=require(_0x59b9('0x1'));var zipdir=require(_0x59b9('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x59b9('0x3'));var BPromise=require(_0x59b9('0x4'));var Mustache=require(_0x59b9('0x5'));var util=require('util');var path=require(_0x59b9('0x6'));var sox=require(_0x59b9('0x7'));var csv=require(_0x59b9('0x8'));var ejs=require(_0x59b9('0x9'));var fs=require('fs');var fs_extra=require(_0x59b9('0xa'));var _=require('lodash');var squel=require(_0x59b9('0xb'));var crypto=require(_0x59b9('0xc'));var jsforce=require(_0x59b9('0xd'));var deskjs=require(_0x59b9('0xe'));var toCsv=require('to-csv');var querystring=require(_0x59b9('0xf'));var Papa=require(_0x59b9('0x10'));var Redis=require('ioredis');var authService=require(_0x59b9('0x11'));var qs=require(_0x59b9('0x12'));var as=require(_0x59b9('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x59b9('0x14'))(_0x59b9('0x15'));var utils=require(_0x59b9('0x16'));var config=require(_0x59b9('0x17'));var licenseUtil=require(_0x59b9('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1adb23,_0x2c7c53){_0x2c7c53=_0x2c7c53||0xcc;return function(_0x52ffde){if(_0x52ffde){return _0x1adb23[_0x59b9('0x19')](_0x2c7c53);}return _0x1adb23[_0x59b9('0x1a')](_0x2c7c53)['end']();};}function respondWithResult(_0x1592a0,_0x521527){_0x521527=_0x521527||0xc8;return function(_0x148f77){if(_0x148f77){return _0x1592a0[_0x59b9('0x1a')](_0x521527)[_0x59b9('0x1b')](_0x148f77);}};}function respondWithFilteredResult(_0x3ad99e,_0x47774c){return function(_0x3c2c89){if(_0x3c2c89){var _0x194741=typeof _0x47774c[_0x59b9('0x1c')]==='undefined'&&typeof _0x47774c[_0x59b9('0x1d')]==='undefined';var _0x4c4176=_0x3c2c89[_0x59b9('0x1e')];var _0x3668b6=_0x194741?0x0:_0x47774c[_0x59b9('0x1c')];var _0x27bd2f=_0x194741?_0x3c2c89[_0x59b9('0x1e')]:_0x47774c[_0x59b9('0x1c')]+_0x47774c['limit'];var _0x3e1324;if(_0x27bd2f>=_0x4c4176){_0x27bd2f=_0x4c4176;_0x3e1324=0xc8;}else{_0x3e1324=0xce;}_0x3ad99e['status'](_0x3e1324);return _0x3ad99e[_0x59b9('0x1f')](_0x59b9('0x20'),_0x3668b6+'-'+_0x27bd2f+'/'+_0x4c4176)['json'](_0x3c2c89);}return null;};}function patchUpdates(_0x659604){return function(_0x163465){try{jsonpatch['apply'](_0x163465,_0x659604,!![]);}catch(_0x38fa6b){return BPromise['reject'](_0x38fa6b);}return _0x163465[_0x59b9('0x21')]();};}function saveUpdates(_0x466b46,_0x4a5255){return function(_0x53f1a5){if(_0x53f1a5){return _0x53f1a5[_0x59b9('0x22')](_0x466b46)[_0x59b9('0x23')](function(_0x2d0cdd){return _0x2d0cdd;});}return null;};}function removeEntity(_0x1ef329,_0x2b0239){return function(_0x3be726){if(_0x3be726){return _0x3be726['destroy']()['then'](function(){var _0xd2f002=_0x3be726[_0x59b9('0x24')]({'plain':!![]});var _0x5956ee='Templates';return db[_0x59b9('0x25')][_0x59b9('0x26')]({'where':{'type':_0x5956ee,'resourceId':_0xd2f002['id']}})[_0x59b9('0x23')](function(){return _0x3be726;});})[_0x59b9('0x23')](function(){_0x1ef329['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4f84f7,_0x5a3a74){return function(_0x2606b8){if(!_0x2606b8){_0x4f84f7[_0x59b9('0x19')](0x194);}return _0x2606b8;};}function handleError(_0x443cbe,_0x46a34a){_0x46a34a=_0x46a34a||0x1f4;return function(_0x2dce68){logger[_0x59b9('0x27')](_0x2dce68['stack']);if(_0x2dce68[_0x59b9('0x28')]){delete _0x2dce68[_0x59b9('0x28')];}_0x443cbe[_0x59b9('0x1a')](_0x46a34a)[_0x59b9('0x29')](_0x2dce68);};}exports[_0x59b9('0x2a')]=function(_0x51d310,_0x4ae442){var _0x4426be={},_0x390ffc={},_0x623fb4={'count':0x0,'rows':[]};var _0x1a5c99=_[_0x59b9('0x2b')](db[_0x59b9('0x2c')][_0x59b9('0x2d')],function(_0x26473b){return{'name':_0x26473b[_0x59b9('0x2e')],'type':_0x26473b[_0x59b9('0x2f')][_0x59b9('0x30')]};});_0x390ffc[_0x59b9('0x31')]=_[_0x59b9('0x2b')](_0x1a5c99,_0x59b9('0x28'));_0x390ffc['query']=_[_0x59b9('0x32')](_0x51d310[_0x59b9('0x33')]);_0x390ffc[_0x59b9('0x34')]=_['intersection'](_0x390ffc[_0x59b9('0x31')],_0x390ffc['query']);_0x4426be['attributes']=_[_0x59b9('0x35')](_0x390ffc[_0x59b9('0x31')],qs[_0x59b9('0x36')](_0x51d310[_0x59b9('0x33')][_0x59b9('0x36')]));_0x4426be[_0x59b9('0x37')]=_0x4426be[_0x59b9('0x37')]['length']?_0x4426be['attributes']:_0x390ffc[_0x59b9('0x31')];if(!_0x51d310['query'][_0x59b9('0x38')](_0x59b9('0x39'))){_0x4426be[_0x59b9('0x1d')]=qs[_0x59b9('0x1d')](_0x51d310[_0x59b9('0x33')]['limit']);_0x4426be[_0x59b9('0x1c')]=qs['offset'](_0x51d310['query']['offset']);}_0x4426be['order']=qs['sort'](_0x51d310[_0x59b9('0x33')]['sort']);_0x4426be[_0x59b9('0x3a')]=qs[_0x59b9('0x34')](_['pick'](_0x51d310[_0x59b9('0x33')],_0x390ffc[_0x59b9('0x34')]),_0x1a5c99);if(_0x51d310['query'][_0x59b9('0x3b')]){_0x4426be[_0x59b9('0x3a')]=_['merge'](_0x4426be[_0x59b9('0x3a')],{'$or':_['map'](_0x1a5c99,function(_0x309992){if(_0x309992[_0x59b9('0x2f')]!=='VIRTUAL'){var _0x38fccb={};_0x38fccb[_0x309992[_0x59b9('0x28')]]={'$like':'%'+_0x51d310[_0x59b9('0x33')][_0x59b9('0x3b')]+'%'};return _0x38fccb;}})});}_0x4426be=_[_0x59b9('0x3c')]({},_0x4426be,_0x51d310[_0x59b9('0x3d')]);var _0x4d002d={'where':_0x4426be['where']};return db[_0x59b9('0x2c')][_0x59b9('0x1e')](_0x4d002d)[_0x59b9('0x23')](function(_0x5de33a){_0x623fb4['count']=_0x5de33a;if(_0x51d310['query'][_0x59b9('0x3e')]){_0x4426be[_0x59b9('0x3f')]=[{'all':!![]}];}return db['Template']['findAll'](_0x4426be);})[_0x59b9('0x23')](function(_0x185cde){_0x623fb4[_0x59b9('0x40')]=_0x185cde;return _0x623fb4;})['then'](respondWithFilteredResult(_0x4ae442,_0x4426be))[_0x59b9('0x41')](handleError(_0x4ae442,null));};exports[_0x59b9('0x42')]=function(_0x56ba23,_0x1304ba){var _0x54cdcf={'raw':!![],'where':{'id':_0x56ba23[_0x59b9('0x43')]['id']}},_0x1704ba={};_0x1704ba[_0x59b9('0x31')]=_[_0x59b9('0x32')](db[_0x59b9('0x2c')][_0x59b9('0x2d')]);_0x1704ba['query']=_[_0x59b9('0x32')](_0x56ba23[_0x59b9('0x33')]);_0x1704ba['filters']=_[_0x59b9('0x35')](_0x1704ba[_0x59b9('0x31')],_0x1704ba['query']);_0x54cdcf[_0x59b9('0x37')]=_['intersection'](_0x1704ba[_0x59b9('0x31')],qs[_0x59b9('0x36')](_0x56ba23[_0x59b9('0x33')]['fields']));_0x54cdcf[_0x59b9('0x37')]=_0x54cdcf[_0x59b9('0x37')][_0x59b9('0x44')]?_0x54cdcf['attributes']:_0x1704ba[_0x59b9('0x31')];if(_0x56ba23[_0x59b9('0x33')][_0x59b9('0x3e')]){_0x54cdcf[_0x59b9('0x3f')]=[{'all':!![]}];}_0x54cdcf=_['merge']({},_0x54cdcf,_0x56ba23[_0x59b9('0x3d')]);return db[_0x59b9('0x2c')][_0x59b9('0x45')](_0x54cdcf)[_0x59b9('0x23')](handleEntityNotFound(_0x1304ba,null))[_0x59b9('0x23')](respondWithResult(_0x1304ba,null))[_0x59b9('0x41')](handleError(_0x1304ba,null));};exports[_0x59b9('0x46')]=function(_0x1f3e76,_0x5207d8){return db[_0x59b9('0x2c')]['create'](_0x1f3e76[_0x59b9('0x47')],{})[_0x59b9('0x23')](function(_0x494cde){var _0xd24357=_0x1f3e76[_0x59b9('0x48')][_0x59b9('0x24')]({'plain':!![]});if(!_0xd24357)throw new Error(_0x59b9('0x49'));if(_0xd24357[_0x59b9('0x4a')]==='user'){var _0x1cd41f=_0x494cde[_0x59b9('0x24')]({'plain':!![]});var _0x398fc0=_0x59b9('0x4b');return db[_0x59b9('0x4c')]['find']({'where':{'name':_0x398fc0,'userProfileId':_0xd24357['userProfileId']},'raw':!![]})['then'](function(_0x4fbb44){if(_0x4fbb44&&_0x4fbb44[_0x59b9('0x4d')]===0x0){return db[_0x59b9('0x25')][_0x59b9('0x46')]({'name':_0x1cd41f[_0x59b9('0x28')],'resourceId':_0x1cd41f['id'],'type':_0x4fbb44[_0x59b9('0x28')],'sectionId':_0x4fbb44['id']},{})[_0x59b9('0x23')](function(){return _0x494cde;});}else{return _0x494cde;}})[_0x59b9('0x41')](function(_0x312496){logger[_0x59b9('0x27')](_0x59b9('0x4e'),_0x312496);throw _0x312496;});}return _0x494cde;})[_0x59b9('0x23')](respondWithResult(_0x5207d8,0xc9))[_0x59b9('0x41')](handleError(_0x5207d8,null));};exports['update']=function(_0x58384c,_0x4db0dc){if(_0x58384c[_0x59b9('0x47')]['id']){delete _0x58384c[_0x59b9('0x47')]['id'];}return db[_0x59b9('0x2c')]['find']({'where':{'id':_0x58384c[_0x59b9('0x43')]['id']}})['then'](handleEntityNotFound(_0x4db0dc,null))['then'](saveUpdates(_0x58384c[_0x59b9('0x47')],null))[_0x59b9('0x23')](respondWithResult(_0x4db0dc,null))[_0x59b9('0x41')](handleError(_0x4db0dc,null));};exports['destroy']=function(_0x5abc95,_0x9814ff){return db['Template']['find']({'where':{'id':_0x5abc95['params']['id']}})[_0x59b9('0x23')](handleEntityNotFound(_0x9814ff,null))[_0x59b9('0x23')](removeEntity(_0x9814ff,null))['catch'](handleError(_0x9814ff,null));};