Built motion from commit fe909640.|2.6.8
[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 _0xa6d2=['attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','VIRTUAL','merge','options','where','includeAll','include','catch','show','intersection','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','UserProfileResource','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','Templates','destroy','sendStatus','error','name','send','index','map','Template','rawAttributes','key','query','keys','filters','model'];(function(_0x43cba5,_0x4a2f83){var _0x359d1a=function(_0x888a02){while(--_0x888a02){_0x43cba5['push'](_0x43cba5['shift']());}};_0x359d1a(++_0x4a2f83);}(_0xa6d2,0x111));var _0x2a6d=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0xa6d2[_0x432682];return _0x463d05;};'use strict';var emlformat=require(_0x2a6d('0x0'));var rimraf=require(_0x2a6d('0x1'));var zipdir=require(_0x2a6d('0x2'));var jsonpatch=require(_0x2a6d('0x3'));var rp=require(_0x2a6d('0x4'));var moment=require(_0x2a6d('0x5'));var BPromise=require(_0x2a6d('0x6'));var Mustache=require('mustache');var util=require(_0x2a6d('0x7'));var path=require(_0x2a6d('0x8'));var sox=require(_0x2a6d('0x9'));var csv=require(_0x2a6d('0xa'));var ejs=require(_0x2a6d('0xb'));var fs=require('fs');var fs_extra=require(_0x2a6d('0xc'));var _=require('lodash');var squel=require(_0x2a6d('0xd'));var crypto=require(_0x2a6d('0xe'));var jsforce=require(_0x2a6d('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x2a6d('0x10'));var Papa=require(_0x2a6d('0x11'));var Redis=require(_0x2a6d('0x12'));var authService=require(_0x2a6d('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x2a6d('0x14'));var hardwareService=require(_0x2a6d('0x15'));var logger=require(_0x2a6d('0x16'))(_0x2a6d('0x17'));var utils=require(_0x2a6d('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x2a6d('0x19'));var db=require(_0x2a6d('0x1a'))['db'];function respondWithStatusCode(_0x30a1a0,_0x3c732a){_0x3c732a=_0x3c732a||0xcc;return function(_0xd0d733){if(_0xd0d733){return _0x30a1a0['sendStatus'](_0x3c732a);}return _0x30a1a0[_0x2a6d('0x1b')](_0x3c732a)[_0x2a6d('0x1c')]();};}function respondWithResult(_0x5379eb,_0x10560e){_0x10560e=_0x10560e||0xc8;return function(_0xc2e3a7){if(_0xc2e3a7){return _0x5379eb[_0x2a6d('0x1b')](_0x10560e)[_0x2a6d('0x1d')](_0xc2e3a7);}};}function respondWithFilteredResult(_0x47fc89,_0x2590c8){return function(_0x2f276a){if(_0x2f276a){var _0x57a22e=typeof _0x2590c8[_0x2a6d('0x1e')]===_0x2a6d('0x1f')&&typeof _0x2590c8[_0x2a6d('0x20')]===_0x2a6d('0x1f');var _0x5c35ef=_0x2f276a[_0x2a6d('0x21')];var _0xab8af7=_0x57a22e?0x0:_0x2590c8[_0x2a6d('0x1e')];var _0x298c6a=_0x57a22e?_0x2f276a[_0x2a6d('0x21')]:_0x2590c8[_0x2a6d('0x1e')]+_0x2590c8['limit'];var _0x4a4920;if(_0x298c6a>=_0x5c35ef){_0x298c6a=_0x5c35ef;_0x4a4920=0xc8;}else{_0x4a4920=0xce;}_0x47fc89[_0x2a6d('0x1b')](_0x4a4920);return _0x47fc89[_0x2a6d('0x22')](_0x2a6d('0x23'),_0xab8af7+'-'+_0x298c6a+'/'+_0x5c35ef)[_0x2a6d('0x1d')](_0x2f276a);}return null;};}function patchUpdates(_0x49da46){return function(_0x37c125){try{jsonpatch[_0x2a6d('0x24')](_0x37c125,_0x49da46,!![]);}catch(_0x183522){return BPromise['reject'](_0x183522);}return _0x37c125[_0x2a6d('0x25')]();};}function saveUpdates(_0x472235,_0x474cfb){return function(_0x5bbf4f){if(_0x5bbf4f){return _0x5bbf4f[_0x2a6d('0x26')](_0x472235)[_0x2a6d('0x27')](function(_0x388527){return _0x388527;});}return null;};}function removeEntity(_0x21c5eb,_0x7d9a7b){return function(_0x11e997){if(_0x11e997){return _0x11e997['destroy']()[_0x2a6d('0x27')](function(){var _0x532ee3=_0x11e997['get']({'plain':!![]});var _0x5118af=_0x2a6d('0x28');return db['UserProfileResource'][_0x2a6d('0x29')]({'where':{'type':_0x5118af,'resourceId':_0x532ee3['id']}})[_0x2a6d('0x27')](function(){return _0x11e997;});})[_0x2a6d('0x27')](function(){_0x21c5eb[_0x2a6d('0x1b')](0xcc)[_0x2a6d('0x1c')]();});}};}function handleEntityNotFound(_0x2ad1e8,_0x2a65fb){return function(_0x536e60){if(!_0x536e60){_0x2ad1e8[_0x2a6d('0x2a')](0x194);}return _0x536e60;};}function handleError(_0x17e8d4,_0x3f60fe){_0x3f60fe=_0x3f60fe||0x1f4;return function(_0x52e79a){logger[_0x2a6d('0x2b')](_0x52e79a['stack']);if(_0x52e79a[_0x2a6d('0x2c')]){delete _0x52e79a['name'];}_0x17e8d4[_0x2a6d('0x1b')](_0x3f60fe)[_0x2a6d('0x2d')](_0x52e79a);};}exports[_0x2a6d('0x2e')]=function(_0x42eb99,_0x5443ba){var _0x41ba01={},_0x3a30e1={},_0x4576ce={'count':0x0,'rows':[]};var _0x143d3a=_[_0x2a6d('0x2f')](db[_0x2a6d('0x30')][_0x2a6d('0x31')],function(_0x93482f){return{'name':_0x93482f['fieldName'],'type':_0x93482f['type'][_0x2a6d('0x32')]};});_0x3a30e1['model']=_['map'](_0x143d3a,'name');_0x3a30e1[_0x2a6d('0x33')]=_[_0x2a6d('0x34')](_0x42eb99[_0x2a6d('0x33')]);_0x3a30e1[_0x2a6d('0x35')]=_['intersection'](_0x3a30e1[_0x2a6d('0x36')],_0x3a30e1[_0x2a6d('0x33')]);_0x41ba01[_0x2a6d('0x37')]=_['intersection'](_0x3a30e1['model'],qs[_0x2a6d('0x38')](_0x42eb99['query']['fields']));_0x41ba01[_0x2a6d('0x37')]=_0x41ba01[_0x2a6d('0x37')][_0x2a6d('0x39')]?_0x41ba01[_0x2a6d('0x37')]:_0x3a30e1['model'];if(!_0x42eb99['query'][_0x2a6d('0x3a')](_0x2a6d('0x3b'))){_0x41ba01[_0x2a6d('0x20')]=qs[_0x2a6d('0x20')](_0x42eb99[_0x2a6d('0x33')][_0x2a6d('0x20')]);_0x41ba01['offset']=qs['offset'](_0x42eb99[_0x2a6d('0x33')][_0x2a6d('0x1e')]);}_0x41ba01['order']=qs[_0x2a6d('0x3c')](_0x42eb99[_0x2a6d('0x33')]['sort']);_0x41ba01['where']=qs[_0x2a6d('0x35')](_[_0x2a6d('0x3d')](_0x42eb99[_0x2a6d('0x33')],_0x3a30e1[_0x2a6d('0x35')]),_0x143d3a);if(_0x42eb99[_0x2a6d('0x33')][_0x2a6d('0x3e')]){_0x41ba01['where']=_['merge'](_0x41ba01['where'],{'$or':_[_0x2a6d('0x2f')](_0x143d3a,function(_0x52d488){if(_0x52d488['type']!==_0x2a6d('0x3f')){var _0x5a1a01={};_0x5a1a01[_0x52d488[_0x2a6d('0x2c')]]={'$like':'%'+_0x42eb99[_0x2a6d('0x33')]['filter']+'%'};return _0x5a1a01;}})});}_0x41ba01=_[_0x2a6d('0x40')]({},_0x41ba01,_0x42eb99[_0x2a6d('0x41')]);var _0x191f70={'where':_0x41ba01[_0x2a6d('0x42')]};return db[_0x2a6d('0x30')][_0x2a6d('0x21')](_0x191f70)[_0x2a6d('0x27')](function(_0x16b2e9){_0x4576ce[_0x2a6d('0x21')]=_0x16b2e9;if(_0x42eb99['query'][_0x2a6d('0x43')]){_0x41ba01[_0x2a6d('0x44')]=[{'all':!![]}];}return db['Template']['findAll'](_0x41ba01);})[_0x2a6d('0x27')](function(_0x30dad2){_0x4576ce['rows']=_0x30dad2;return _0x4576ce;})[_0x2a6d('0x27')](respondWithFilteredResult(_0x5443ba,_0x41ba01))[_0x2a6d('0x45')](handleError(_0x5443ba,null));};exports[_0x2a6d('0x46')]=function(_0x219aff,_0x1f227d){var _0x4e76b9={'raw':!![],'where':{'id':_0x219aff['params']['id']}},_0x431898={};_0x431898[_0x2a6d('0x36')]=_[_0x2a6d('0x34')](db[_0x2a6d('0x30')][_0x2a6d('0x31')]);_0x431898[_0x2a6d('0x33')]=_[_0x2a6d('0x34')](_0x219aff[_0x2a6d('0x33')]);_0x431898[_0x2a6d('0x35')]=_[_0x2a6d('0x47')](_0x431898[_0x2a6d('0x36')],_0x431898[_0x2a6d('0x33')]);_0x4e76b9[_0x2a6d('0x37')]=_[_0x2a6d('0x47')](_0x431898[_0x2a6d('0x36')],qs[_0x2a6d('0x38')](_0x219aff[_0x2a6d('0x33')][_0x2a6d('0x38')]));_0x4e76b9[_0x2a6d('0x37')]=_0x4e76b9[_0x2a6d('0x37')]['length']?_0x4e76b9[_0x2a6d('0x37')]:_0x431898[_0x2a6d('0x36')];if(_0x219aff[_0x2a6d('0x33')][_0x2a6d('0x43')]){_0x4e76b9[_0x2a6d('0x44')]=[{'all':!![]}];}_0x4e76b9=_['merge']({},_0x4e76b9,_0x219aff['options']);return db[_0x2a6d('0x30')][_0x2a6d('0x48')](_0x4e76b9)[_0x2a6d('0x27')](handleEntityNotFound(_0x1f227d,null))[_0x2a6d('0x27')](respondWithResult(_0x1f227d,null))[_0x2a6d('0x45')](handleError(_0x1f227d,null));};exports[_0x2a6d('0x49')]=function(_0x13a4d6,_0x8e8439){return db[_0x2a6d('0x30')][_0x2a6d('0x49')](_0x13a4d6[_0x2a6d('0x4a')],{})[_0x2a6d('0x27')](function(_0xd990d2){var _0x2c811b=_0x13a4d6[_0x2a6d('0x4b')][_0x2a6d('0x4c')]({'plain':!![]});if(!_0x2c811b)throw new Error(_0x2a6d('0x4d'));if(_0x2c811b['role']===_0x2a6d('0x4b')){var _0x15399b=_0xd990d2[_0x2a6d('0x4c')]({'plain':!![]});var _0x5729de=_0x2a6d('0x28');return db[_0x2a6d('0x4e')][_0x2a6d('0x48')]({'where':{'name':_0x5729de,'userProfileId':_0x2c811b['userProfileId']},'raw':!![]})[_0x2a6d('0x27')](function(_0x24293b){if(_0x24293b&&_0x24293b[_0x2a6d('0x4f')]===0x0){return db[_0x2a6d('0x50')][_0x2a6d('0x49')]({'name':_0x15399b[_0x2a6d('0x2c')],'resourceId':_0x15399b['id'],'type':_0x24293b['name'],'sectionId':_0x24293b['id']},{})[_0x2a6d('0x27')](function(){return _0xd990d2;});}else{return _0xd990d2;}})['catch'](function(_0x43a7f9){logger[_0x2a6d('0x2b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x43a7f9);throw _0x43a7f9;});}return _0xd990d2;})[_0x2a6d('0x27')](respondWithResult(_0x8e8439,0xc9))['catch'](handleError(_0x8e8439,null));};exports[_0x2a6d('0x26')]=function(_0x399ea4,_0xb275df){if(_0x399ea4['body']['id']){delete _0x399ea4[_0x2a6d('0x4a')]['id'];}return db[_0x2a6d('0x30')][_0x2a6d('0x48')]({'where':{'id':_0x399ea4[_0x2a6d('0x51')]['id']}})[_0x2a6d('0x27')](handleEntityNotFound(_0xb275df,null))[_0x2a6d('0x27')](saveUpdates(_0x399ea4[_0x2a6d('0x4a')],null))[_0x2a6d('0x27')](respondWithResult(_0xb275df,null))[_0x2a6d('0x45')](handleError(_0xb275df,null));};exports[_0x2a6d('0x29')]=function(_0x31b451,_0x44b57a){return db['Template'][_0x2a6d('0x48')]({'where':{'id':_0x31b451[_0x2a6d('0x51')]['id']}})[_0x2a6d('0x27')](handleEntityNotFound(_0x44b57a,null))[_0x2a6d('0x27')](removeEntity(_0x44b57a,null))['catch'](handleError(_0x44b57a,null));};