Built motion from commit 449495f6.|2.6.27
[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 _0xc94b=['Templates','stack','name','send','index','rawAttributes','type','key','query','filters','intersection','fields','attributes','model','hasOwnProperty','nolimit','order','sort','where','filter','merge','map','VIRTUAL','Template','includeAll','include','show','params','keys','options','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','json','apply','reject','save','update','then','destroy'];(function(_0x3da1c5,_0x53f43f){var _0x20d262=function(_0x5b914f){while(--_0x5b914f){_0x3da1c5['push'](_0x3da1c5['shift']());}};_0x20d262(++_0x53f43f);}(_0xc94b,0x7f));var _0xbc94=function(_0x87b0ff,_0x314389){_0x87b0ff=_0x87b0ff-0x0;var _0x3bc0b2=_0xc94b[_0x87b0ff];return _0x3bc0b2;};'use strict';var emlformat=require(_0xbc94('0x0'));var rimraf=require(_0xbc94('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbc94('0x2'));var rp=require(_0xbc94('0x3'));var moment=require(_0xbc94('0x4'));var BPromise=require(_0xbc94('0x5'));var Mustache=require(_0xbc94('0x6'));var util=require(_0xbc94('0x7'));var path=require(_0xbc94('0x8'));var sox=require(_0xbc94('0x9'));var csv=require(_0xbc94('0xa'));var ejs=require(_0xbc94('0xb'));var fs=require('fs');var fs_extra=require(_0xbc94('0xc'));var _=require(_0xbc94('0xd'));var squel=require(_0xbc94('0xe'));var crypto=require(_0xbc94('0xf'));var jsforce=require(_0xbc94('0x10'));var deskjs=require(_0xbc94('0x11'));var toCsv=require(_0xbc94('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xbc94('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xbc94('0x13'));var hardwareService=require(_0xbc94('0x14'));var logger=require(_0xbc94('0x15'))(_0xbc94('0x16'));var utils=require(_0xbc94('0x17'));var config=require(_0xbc94('0x18'));var licenseUtil=require(_0xbc94('0x19'));var db=require(_0xbc94('0x1a'))['db'];function respondWithStatusCode(_0x44d0a1,_0x365301){_0x365301=_0x365301||0xcc;return function(_0x1c581d){if(_0x1c581d){return _0x44d0a1[_0xbc94('0x1b')](_0x365301);}return _0x44d0a1[_0xbc94('0x1c')](_0x365301)[_0xbc94('0x1d')]();};}function respondWithResult(_0x536800,_0x2299a9){_0x2299a9=_0x2299a9||0xc8;return function(_0x34b7b7){if(_0x34b7b7){return _0x536800['status'](_0x2299a9)['json'](_0x34b7b7);}};}function respondWithFilteredResult(_0x11be22,_0x15e2a8){return function(_0x5a3aa5){if(_0x5a3aa5){var _0x368a13=typeof _0x15e2a8[_0xbc94('0x1e')]==='undefined'&&typeof _0x15e2a8[_0xbc94('0x1f')]===_0xbc94('0x20');var _0x176318=_0x5a3aa5[_0xbc94('0x21')];var _0x4b2dad=_0x368a13?0x0:_0x15e2a8[_0xbc94('0x1e')];var _0x1b9b12=_0x368a13?_0x5a3aa5[_0xbc94('0x21')]:_0x15e2a8[_0xbc94('0x1e')]+_0x15e2a8[_0xbc94('0x1f')];var _0x51abd4;if(_0x1b9b12>=_0x176318){_0x1b9b12=_0x176318;_0x51abd4=0xc8;}else{_0x51abd4=0xce;}_0x11be22[_0xbc94('0x1c')](_0x51abd4);return _0x11be22[_0xbc94('0x22')](_0xbc94('0x23'),_0x4b2dad+'-'+_0x1b9b12+'/'+_0x176318)[_0xbc94('0x24')](_0x5a3aa5);}return null;};}function patchUpdates(_0x1a0e68){return function(_0x191a23){try{jsonpatch[_0xbc94('0x25')](_0x191a23,_0x1a0e68,!![]);}catch(_0x318b45){return BPromise[_0xbc94('0x26')](_0x318b45);}return _0x191a23[_0xbc94('0x27')]();};}function saveUpdates(_0x4dbe18,_0x2a88bb){return function(_0xbe9cb2){if(_0xbe9cb2){return _0xbe9cb2[_0xbc94('0x28')](_0x4dbe18)[_0xbc94('0x29')](function(_0x2f137b){return _0x2f137b;});}return null;};}function removeEntity(_0x3b2883,_0x2232b6){return function(_0x4b317e){if(_0x4b317e){return _0x4b317e[_0xbc94('0x2a')]()[_0xbc94('0x29')](function(){var _0x498b38=_0x4b317e['get']({'plain':!![]});var _0x2190bc=_0xbc94('0x2b');return db['UserProfileResource'][_0xbc94('0x2a')]({'where':{'type':_0x2190bc,'resourceId':_0x498b38['id']}})[_0xbc94('0x29')](function(){return _0x4b317e;});})['then'](function(){_0x3b2883[_0xbc94('0x1c')](0xcc)[_0xbc94('0x1d')]();});}};}function handleEntityNotFound(_0x33a850,_0x164620){return function(_0x548e5e){if(!_0x548e5e){_0x33a850[_0xbc94('0x1b')](0x194);}return _0x548e5e;};}function handleError(_0x56b34a,_0x397795){_0x397795=_0x397795||0x1f4;return function(_0x59d0e0){logger['error'](_0x59d0e0[_0xbc94('0x2c')]);if(_0x59d0e0[_0xbc94('0x2d')]){delete _0x59d0e0['name'];}_0x56b34a[_0xbc94('0x1c')](_0x397795)[_0xbc94('0x2e')](_0x59d0e0);};}exports[_0xbc94('0x2f')]=function(_0x22363e,_0x2e2bfe){var _0x20a64d={},_0x2113b9={},_0x61b969={'count':0x0,'rows':[]};var _0x475192=_['map'](db['Template'][_0xbc94('0x30')],function(_0x1b6e10){return{'name':_0x1b6e10['fieldName'],'type':_0x1b6e10[_0xbc94('0x31')][_0xbc94('0x32')]};});_0x2113b9['model']=_['map'](_0x475192,_0xbc94('0x2d'));_0x2113b9[_0xbc94('0x33')]=_['keys'](_0x22363e['query']);_0x2113b9[_0xbc94('0x34')]=_[_0xbc94('0x35')](_0x2113b9['model'],_0x2113b9[_0xbc94('0x33')]);_0x20a64d['attributes']=_['intersection'](_0x2113b9['model'],qs['fields'](_0x22363e['query'][_0xbc94('0x36')]));_0x20a64d['attributes']=_0x20a64d[_0xbc94('0x37')]['length']?_0x20a64d[_0xbc94('0x37')]:_0x2113b9[_0xbc94('0x38')];if(!_0x22363e['query'][_0xbc94('0x39')](_0xbc94('0x3a'))){_0x20a64d[_0xbc94('0x1f')]=qs[_0xbc94('0x1f')](_0x22363e[_0xbc94('0x33')][_0xbc94('0x1f')]);_0x20a64d[_0xbc94('0x1e')]=qs[_0xbc94('0x1e')](_0x22363e[_0xbc94('0x33')][_0xbc94('0x1e')]);}_0x20a64d[_0xbc94('0x3b')]=qs[_0xbc94('0x3c')](_0x22363e[_0xbc94('0x33')][_0xbc94('0x3c')]);_0x20a64d[_0xbc94('0x3d')]=qs[_0xbc94('0x34')](_['pick'](_0x22363e[_0xbc94('0x33')],_0x2113b9[_0xbc94('0x34')]),_0x475192);if(_0x22363e['query'][_0xbc94('0x3e')]){_0x20a64d[_0xbc94('0x3d')]=_[_0xbc94('0x3f')](_0x20a64d[_0xbc94('0x3d')],{'$or':_[_0xbc94('0x40')](_0x475192,function(_0x234095){if(_0x234095['type']!==_0xbc94('0x41')){var _0x1ab986={};_0x1ab986[_0x234095[_0xbc94('0x2d')]]={'$like':'%'+_0x22363e[_0xbc94('0x33')][_0xbc94('0x3e')]+'%'};return _0x1ab986;}})});}_0x20a64d=_[_0xbc94('0x3f')]({},_0x20a64d,_0x22363e['options']);var _0x2d5932={'where':_0x20a64d[_0xbc94('0x3d')]};return db[_0xbc94('0x42')][_0xbc94('0x21')](_0x2d5932)[_0xbc94('0x29')](function(_0x555822){_0x61b969[_0xbc94('0x21')]=_0x555822;if(_0x22363e[_0xbc94('0x33')][_0xbc94('0x43')]){_0x20a64d[_0xbc94('0x44')]=[{'all':!![]}];}return db[_0xbc94('0x42')]['findAll'](_0x20a64d);})['then'](function(_0x548f94){_0x61b969['rows']=_0x548f94;return _0x61b969;})[_0xbc94('0x29')](respondWithFilteredResult(_0x2e2bfe,_0x20a64d))['catch'](handleError(_0x2e2bfe,null));};exports[_0xbc94('0x45')]=function(_0x16db52,_0xb56fa6){var _0x328bf2={'raw':!![],'where':{'id':_0x16db52[_0xbc94('0x46')]['id']}},_0x197080={};_0x197080[_0xbc94('0x38')]=_[_0xbc94('0x47')](db['Template']['rawAttributes']);_0x197080[_0xbc94('0x33')]=_[_0xbc94('0x47')](_0x16db52[_0xbc94('0x33')]);_0x197080[_0xbc94('0x34')]=_[_0xbc94('0x35')](_0x197080[_0xbc94('0x38')],_0x197080[_0xbc94('0x33')]);_0x328bf2[_0xbc94('0x37')]=_[_0xbc94('0x35')](_0x197080[_0xbc94('0x38')],qs[_0xbc94('0x36')](_0x16db52['query'][_0xbc94('0x36')]));_0x328bf2[_0xbc94('0x37')]=_0x328bf2[_0xbc94('0x37')]['length']?_0x328bf2[_0xbc94('0x37')]:_0x197080[_0xbc94('0x38')];if(_0x16db52[_0xbc94('0x33')][_0xbc94('0x43')]){_0x328bf2[_0xbc94('0x44')]=[{'all':!![]}];}_0x328bf2=_[_0xbc94('0x3f')]({},_0x328bf2,_0x16db52[_0xbc94('0x48')]);return db[_0xbc94('0x42')][_0xbc94('0x49')](_0x328bf2)[_0xbc94('0x29')](handleEntityNotFound(_0xb56fa6,null))['then'](respondWithResult(_0xb56fa6,null))[_0xbc94('0x4a')](handleError(_0xb56fa6,null));};exports[_0xbc94('0x4b')]=function(_0x41f296,_0x2a80e4){return db[_0xbc94('0x42')]['create'](_0x41f296['body'],{})[_0xbc94('0x29')](function(_0x1342ce){var _0xe2f9d5=_0x41f296[_0xbc94('0x4c')]['get']({'plain':!![]});if(!_0xe2f9d5)throw new Error(_0xbc94('0x4d'));if(_0xe2f9d5[_0xbc94('0x4e')]===_0xbc94('0x4c')){var _0x565857=_0x1342ce['get']({'plain':!![]});var _0x538203=_0xbc94('0x2b');return db[_0xbc94('0x4f')][_0xbc94('0x49')]({'where':{'name':_0x538203,'userProfileId':_0xe2f9d5[_0xbc94('0x50')]},'raw':!![]})[_0xbc94('0x29')](function(_0x33c9c7){if(_0x33c9c7&&_0x33c9c7[_0xbc94('0x51')]===0x0){return db[_0xbc94('0x52')][_0xbc94('0x4b')]({'name':_0x565857[_0xbc94('0x2d')],'resourceId':_0x565857['id'],'type':_0x33c9c7[_0xbc94('0x2d')],'sectionId':_0x33c9c7['id']},{})[_0xbc94('0x29')](function(){return _0x1342ce;});}else{return _0x1342ce;}})[_0xbc94('0x4a')](function(_0x3b2484){logger['error'](_0xbc94('0x53'),_0x3b2484);throw _0x3b2484;});}return _0x1342ce;})[_0xbc94('0x29')](respondWithResult(_0x2a80e4,0xc9))[_0xbc94('0x4a')](handleError(_0x2a80e4,null));};exports['update']=function(_0x59a580,_0x4dd011){if(_0x59a580[_0xbc94('0x54')]['id']){delete _0x59a580[_0xbc94('0x54')]['id'];}return db['Template'][_0xbc94('0x49')]({'where':{'id':_0x59a580[_0xbc94('0x46')]['id']}})['then'](handleEntityNotFound(_0x4dd011,null))[_0xbc94('0x29')](saveUpdates(_0x59a580[_0xbc94('0x54')],null))[_0xbc94('0x29')](respondWithResult(_0x4dd011,null))[_0xbc94('0x4a')](handleError(_0x4dd011,null));};exports[_0xbc94('0x2a')]=function(_0x3474cd,_0x15d47b){return db['Template'][_0xbc94('0x49')]({'where':{'id':_0x3474cd[_0xbc94('0x46')]['id']}})['then'](handleEntityNotFound(_0x15d47b,null))[_0xbc94('0x29')](removeEntity(_0x15d47b,null))['catch'](handleError(_0x15d47b,null));};