Built motion from commit (unavailable).|2.5.30
[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 _0xba85=['rawAttributes','fieldName','type','key','query','keys','filters','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','filter','where','VIRTUAL','options','include','findAll','rows','catch','params','includeAll','merge','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','body','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','get','Templates','UserProfileResource','sendStatus','error','stack','name','send','index','map','Template'];(function(_0x31fe66,_0x3b43bc){var _0x3beab0=function(_0x170a3b){while(--_0x170a3b){_0x31fe66['push'](_0x31fe66['shift']());}};_0x3beab0(++_0x3b43bc);}(_0xba85,0x78));var _0x5ba8=function(_0xe285ae,_0x53da3e){_0xe285ae=_0xe285ae-0x0;var _0x584b51=_0xba85[_0xe285ae];return _0x584b51;};'use strict';var emlformat=require(_0x5ba8('0x0'));var rimraf=require(_0x5ba8('0x1'));var zipdir=require(_0x5ba8('0x2'));var jsonpatch=require(_0x5ba8('0x3'));var rp=require('request-promise');var moment=require(_0x5ba8('0x4'));var BPromise=require(_0x5ba8('0x5'));var Mustache=require('mustache');var util=require(_0x5ba8('0x6'));var path=require(_0x5ba8('0x7'));var sox=require(_0x5ba8('0x8'));var csv=require(_0x5ba8('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5ba8('0xa'));var _=require(_0x5ba8('0xb'));var squel=require(_0x5ba8('0xc'));var crypto=require(_0x5ba8('0xd'));var jsforce=require(_0x5ba8('0xe'));var deskjs=require(_0x5ba8('0xf'));var toCsv=require(_0x5ba8('0x9'));var querystring=require(_0x5ba8('0x10'));var Papa=require(_0x5ba8('0x11'));var Redis=require(_0x5ba8('0x12'));var authService=require(_0x5ba8('0x13'));var qs=require(_0x5ba8('0x14'));var as=require(_0x5ba8('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5ba8('0x16'))(_0x5ba8('0x17'));var utils=require(_0x5ba8('0x18'));var config=require(_0x5ba8('0x19'));var licenseUtil=require(_0x5ba8('0x1a'));var db=require(_0x5ba8('0x1b'))['db'];function respondWithStatusCode(_0x292186,_0x3d8b11){_0x3d8b11=_0x3d8b11||0xcc;return function(_0x1bed27){if(_0x1bed27){return _0x292186['sendStatus'](_0x3d8b11);}return _0x292186[_0x5ba8('0x1c')](_0x3d8b11)[_0x5ba8('0x1d')]();};}function respondWithResult(_0xb4128f,_0x209ec){_0x209ec=_0x209ec||0xc8;return function(_0x431e0e){if(_0x431e0e){return _0xb4128f[_0x5ba8('0x1c')](_0x209ec)['json'](_0x431e0e);}};}function respondWithFilteredResult(_0x3e690d,_0x18691a){return function(_0x2ab2fe){if(_0x2ab2fe){var _0x677541=typeof _0x18691a[_0x5ba8('0x1e')]===_0x5ba8('0x1f')&&typeof _0x18691a[_0x5ba8('0x20')]===_0x5ba8('0x1f');var _0x25b63d=_0x2ab2fe[_0x5ba8('0x21')];var _0x49ef30=_0x677541?0x0:_0x18691a[_0x5ba8('0x1e')];var _0x3fbf51=_0x677541?_0x2ab2fe['count']:_0x18691a['offset']+_0x18691a[_0x5ba8('0x20')];var _0x1a0955;if(_0x3fbf51>=_0x25b63d){_0x3fbf51=_0x25b63d;_0x1a0955=0xc8;}else{_0x1a0955=0xce;}_0x3e690d[_0x5ba8('0x1c')](_0x1a0955);return _0x3e690d[_0x5ba8('0x22')](_0x5ba8('0x23'),_0x49ef30+'-'+_0x3fbf51+'/'+_0x25b63d)[_0x5ba8('0x24')](_0x2ab2fe);}return null;};}function patchUpdates(_0x1a0d5e){return function(_0x11c68f){try{jsonpatch[_0x5ba8('0x25')](_0x11c68f,_0x1a0d5e,!![]);}catch(_0x22c3d0){return BPromise[_0x5ba8('0x26')](_0x22c3d0);}return _0x11c68f[_0x5ba8('0x27')]();};}function saveUpdates(_0x42e580,_0x952c3d){return function(_0xc1d61f){if(_0xc1d61f){return _0xc1d61f[_0x5ba8('0x28')](_0x42e580)[_0x5ba8('0x29')](function(_0x4e16eb){return _0x4e16eb;});}return null;};}function removeEntity(_0xbca8e9,_0x353f37){return function(_0x3ba366){if(_0x3ba366){return _0x3ba366[_0x5ba8('0x2a')]()['then'](function(){var _0x343cd0=_0x3ba366[_0x5ba8('0x2b')]({'plain':!![]});var _0x347d8f=_0x5ba8('0x2c');return db[_0x5ba8('0x2d')]['destroy']({'where':{'type':_0x347d8f,'resourceId':_0x343cd0['id']}})[_0x5ba8('0x29')](function(){return _0x3ba366;});})[_0x5ba8('0x29')](function(){_0xbca8e9[_0x5ba8('0x1c')](0xcc)[_0x5ba8('0x1d')]();});}};}function handleEntityNotFound(_0x115127,_0x5aabe6){return function(_0x596043){if(!_0x596043){_0x115127[_0x5ba8('0x2e')](0x194);}return _0x596043;};}function handleError(_0x1ff10d,_0x97d741){_0x97d741=_0x97d741||0x1f4;return function(_0x80e629){logger[_0x5ba8('0x2f')](_0x80e629[_0x5ba8('0x30')]);if(_0x80e629['name']){delete _0x80e629[_0x5ba8('0x31')];}_0x1ff10d['status'](_0x97d741)[_0x5ba8('0x32')](_0x80e629);};}exports[_0x5ba8('0x33')]=function(_0x330ac3,_0x490f58){var _0xa5d908={},_0x5c265d={},_0x1063f4={'count':0x0,'rows':[]};var _0x498540=_[_0x5ba8('0x34')](db[_0x5ba8('0x35')][_0x5ba8('0x36')],function(_0x18433d){return{'name':_0x18433d[_0x5ba8('0x37')],'type':_0x18433d[_0x5ba8('0x38')][_0x5ba8('0x39')]};});_0x5c265d['model']=_[_0x5ba8('0x34')](_0x498540,_0x5ba8('0x31'));_0x5c265d[_0x5ba8('0x3a')]=_[_0x5ba8('0x3b')](_0x330ac3[_0x5ba8('0x3a')]);_0x5c265d[_0x5ba8('0x3c')]=_['intersection'](_0x5c265d[_0x5ba8('0x3d')],_0x5c265d[_0x5ba8('0x3a')]);_0xa5d908['attributes']=_[_0x5ba8('0x3e')](_0x5c265d[_0x5ba8('0x3d')],qs[_0x5ba8('0x3f')](_0x330ac3[_0x5ba8('0x3a')][_0x5ba8('0x3f')]));_0xa5d908[_0x5ba8('0x40')]=_0xa5d908[_0x5ba8('0x40')][_0x5ba8('0x41')]?_0xa5d908[_0x5ba8('0x40')]:_0x5c265d['model'];if(!_0x330ac3[_0x5ba8('0x3a')][_0x5ba8('0x42')](_0x5ba8('0x43'))){_0xa5d908[_0x5ba8('0x20')]=qs[_0x5ba8('0x20')](_0x330ac3['query'][_0x5ba8('0x20')]);_0xa5d908[_0x5ba8('0x1e')]=qs[_0x5ba8('0x1e')](_0x330ac3[_0x5ba8('0x3a')][_0x5ba8('0x1e')]);}_0xa5d908['order']=qs[_0x5ba8('0x44')](_0x330ac3[_0x5ba8('0x3a')][_0x5ba8('0x44')]);_0xa5d908['where']=qs[_0x5ba8('0x3c')](_['pick'](_0x330ac3['query'],_0x5c265d[_0x5ba8('0x3c')]),_0x498540);if(_0x330ac3['query'][_0x5ba8('0x45')]){_0xa5d908[_0x5ba8('0x46')]=_['merge'](_0xa5d908['where'],{'$or':_['map'](_0x498540,function(_0x3b685d){if(_0x3b685d[_0x5ba8('0x38')]!==_0x5ba8('0x47')){var _0x35fd64={};_0x35fd64[_0x3b685d['name']]={'$like':'%'+_0x330ac3[_0x5ba8('0x3a')][_0x5ba8('0x45')]+'%'};return _0x35fd64;}})});}_0xa5d908=_['merge']({},_0xa5d908,_0x330ac3[_0x5ba8('0x48')]);var _0x3fdca6={'where':_0xa5d908[_0x5ba8('0x46')]};return db[_0x5ba8('0x35')][_0x5ba8('0x21')](_0x3fdca6)['then'](function(_0x28110d){_0x1063f4[_0x5ba8('0x21')]=_0x28110d;if(_0x330ac3[_0x5ba8('0x3a')]['includeAll']){_0xa5d908[_0x5ba8('0x49')]=[{'all':!![]}];}return db['Template'][_0x5ba8('0x4a')](_0xa5d908);})[_0x5ba8('0x29')](function(_0x19921c){_0x1063f4[_0x5ba8('0x4b')]=_0x19921c;return _0x1063f4;})[_0x5ba8('0x29')](respondWithFilteredResult(_0x490f58,_0xa5d908))[_0x5ba8('0x4c')](handleError(_0x490f58,null));};exports['show']=function(_0x113cd3,_0x25f134){var _0x27c6c7={'raw':!![],'where':{'id':_0x113cd3[_0x5ba8('0x4d')]['id']}},_0x5928a9={};_0x5928a9[_0x5ba8('0x3d')]=_[_0x5ba8('0x3b')](db[_0x5ba8('0x35')][_0x5ba8('0x36')]);_0x5928a9[_0x5ba8('0x3a')]=_[_0x5ba8('0x3b')](_0x113cd3['query']);_0x5928a9[_0x5ba8('0x3c')]=_[_0x5ba8('0x3e')](_0x5928a9['model'],_0x5928a9['query']);_0x27c6c7['attributes']=_['intersection'](_0x5928a9['model'],qs[_0x5ba8('0x3f')](_0x113cd3['query'][_0x5ba8('0x3f')]));_0x27c6c7[_0x5ba8('0x40')]=_0x27c6c7['attributes']['length']?_0x27c6c7['attributes']:_0x5928a9[_0x5ba8('0x3d')];if(_0x113cd3['query'][_0x5ba8('0x4e')]){_0x27c6c7['include']=[{'all':!![]}];}_0x27c6c7=_[_0x5ba8('0x4f')]({},_0x27c6c7,_0x113cd3['options']);return db[_0x5ba8('0x35')][_0x5ba8('0x50')](_0x27c6c7)['then'](handleEntityNotFound(_0x25f134,null))[_0x5ba8('0x29')](respondWithResult(_0x25f134,null))['catch'](handleError(_0x25f134,null));};exports[_0x5ba8('0x51')]=function(_0x7a02ac,_0x2c4bac){return db['Template'][_0x5ba8('0x51')](_0x7a02ac['body'],{})[_0x5ba8('0x29')](function(_0x3ed266){var _0x10c661=_0x7a02ac[_0x5ba8('0x52')][_0x5ba8('0x2b')]({'plain':!![]});if(!_0x10c661)throw new Error(_0x5ba8('0x53'));if(_0x10c661['role']===_0x5ba8('0x52')){var _0x29f46d=_0x3ed266[_0x5ba8('0x2b')]({'plain':!![]});var _0x1db2ac=_0x5ba8('0x2c');return db[_0x5ba8('0x54')][_0x5ba8('0x50')]({'where':{'name':_0x1db2ac,'userProfileId':_0x10c661[_0x5ba8('0x55')]},'raw':!![]})[_0x5ba8('0x29')](function(_0x14e614){if(_0x14e614&&_0x14e614['autoAssociation']===0x0){return db[_0x5ba8('0x2d')][_0x5ba8('0x51')]({'name':_0x29f46d['name'],'resourceId':_0x29f46d['id'],'type':_0x14e614['name'],'sectionId':_0x14e614['id']},{})[_0x5ba8('0x29')](function(){return _0x3ed266;});}else{return _0x3ed266;}})[_0x5ba8('0x4c')](function(_0x44fac7){logger[_0x5ba8('0x2f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x44fac7);throw _0x44fac7;});}return _0x3ed266;})['then'](respondWithResult(_0x2c4bac,0xc9))['catch'](handleError(_0x2c4bac,null));};exports['update']=function(_0x559eac,_0x5de40c){if(_0x559eac[_0x5ba8('0x56')]['id']){delete _0x559eac['body']['id'];}return db['Template']['find']({'where':{'id':_0x559eac[_0x5ba8('0x4d')]['id']}})[_0x5ba8('0x29')](handleEntityNotFound(_0x5de40c,null))[_0x5ba8('0x29')](saveUpdates(_0x559eac[_0x5ba8('0x56')],null))[_0x5ba8('0x29')](respondWithResult(_0x5de40c,null))['catch'](handleError(_0x5de40c,null));};exports['destroy']=function(_0x36a459,_0x23ee27){return db[_0x5ba8('0x35')][_0x5ba8('0x50')]({'where':{'id':_0x36a459['params']['id']}})[_0x5ba8('0x29')](handleEntityNotFound(_0x23ee27,null))['then'](removeEntity(_0x23ee27,null))[_0x5ba8('0x4c')](handleError(_0x23ee27,null));};