98e74c367ba532d08913218e52d74ab734f35932
[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 _0x21a8=['findAll','rows','catch','params','keys','options','find','create','body','user','Templates','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','json','offset','undefined','limit','count','status','set','apply','update','then','get','UserProfileResource','destroy','end','sendStatus','error','name','send','index','Template','rawAttributes','fieldName','type','model','map','query','filters','attributes','intersection','fields','length','nolimit','order','sort','pick','filter','merge','VIRTUAL','where','includeAll','include'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x21a8,0xb9));var _0x821a=function(_0x880d26,_0x2ba3d1){_0x880d26=_0x880d26-0x0;var _0x2d459b=_0x21a8[_0x880d26];return _0x2d459b;};'use strict';var emlformat=require(_0x821a('0x0'));var rimraf=require(_0x821a('0x1'));var zipdir=require(_0x821a('0x2'));var jsonpatch=require(_0x821a('0x3'));var rp=require(_0x821a('0x4'));var moment=require(_0x821a('0x5'));var BPromise=require(_0x821a('0x6'));var Mustache=require(_0x821a('0x7'));var util=require(_0x821a('0x8'));var path=require(_0x821a('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x821a('0xa'));var fs=require('fs');var fs_extra=require(_0x821a('0xb'));var _=require(_0x821a('0xc'));var squel=require(_0x821a('0xd'));var crypto=require(_0x821a('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x821a('0xf'));var toCsv=require(_0x821a('0x10'));var querystring=require(_0x821a('0x11'));var Papa=require(_0x821a('0x12'));var Redis=require(_0x821a('0x13'));var authService=require(_0x821a('0x14'));var qs=require(_0x821a('0x15'));var as=require(_0x821a('0x16'));var hardwareService=require(_0x821a('0x17'));var logger=require(_0x821a('0x18'))(_0x821a('0x19'));var utils=require('../../config/utils');var config=require(_0x821a('0x1a'));var licenseUtil=require(_0x821a('0x1b'));var db=require(_0x821a('0x1c'))['db'];function respondWithStatusCode(_0x16477c,_0x5c526e){_0x5c526e=_0x5c526e||0xcc;return function(_0x4c51a7){if(_0x4c51a7){return _0x16477c['sendStatus'](_0x5c526e);}return _0x16477c['status'](_0x5c526e)['end']();};}function respondWithResult(_0x183e60,_0x12d9f1){_0x12d9f1=_0x12d9f1||0xc8;return function(_0x321ecd){if(_0x321ecd){return _0x183e60['status'](_0x12d9f1)[_0x821a('0x1d')](_0x321ecd);}};}function respondWithFilteredResult(_0x31a2a6,_0x45fc57){return function(_0x3b1127){if(_0x3b1127){var _0x5b0c47=typeof _0x45fc57[_0x821a('0x1e')]===_0x821a('0x1f')&&typeof _0x45fc57[_0x821a('0x20')]===_0x821a('0x1f');var _0x2c3418=_0x3b1127[_0x821a('0x21')];var _0x3f6ed4=_0x5b0c47?0x0:_0x45fc57[_0x821a('0x1e')];var _0x3d9fc7=_0x5b0c47?_0x3b1127[_0x821a('0x21')]:_0x45fc57[_0x821a('0x1e')]+_0x45fc57[_0x821a('0x20')];var _0x44a5a7;if(_0x3d9fc7>=_0x2c3418){_0x3d9fc7=_0x2c3418;_0x44a5a7=0xc8;}else{_0x44a5a7=0xce;}_0x31a2a6[_0x821a('0x22')](_0x44a5a7);return _0x31a2a6[_0x821a('0x23')]('Content-Range',_0x3f6ed4+'-'+_0x3d9fc7+'/'+_0x2c3418)[_0x821a('0x1d')](_0x3b1127);}return null;};}function patchUpdates(_0x37473b){return function(_0x33e64b){try{jsonpatch[_0x821a('0x24')](_0x33e64b,_0x37473b,!![]);}catch(_0xc05535){return BPromise['reject'](_0xc05535);}return _0x33e64b['save']();};}function saveUpdates(_0x4b7d18,_0x133718){return function(_0x1df819){if(_0x1df819){return _0x1df819[_0x821a('0x25')](_0x4b7d18)[_0x821a('0x26')](function(_0x857302){return _0x857302;});}return null;};}function removeEntity(_0x5bf62e,_0x14d26b){return function(_0x35615a){if(_0x35615a){return _0x35615a['destroy']()[_0x821a('0x26')](function(){var _0x3e09d4=_0x35615a[_0x821a('0x27')]({'plain':!![]});var _0x1f490e='Templates';return db[_0x821a('0x28')][_0x821a('0x29')]({'where':{'type':_0x1f490e,'resourceId':_0x3e09d4['id']}})['then'](function(){return _0x35615a;});})[_0x821a('0x26')](function(){_0x5bf62e[_0x821a('0x22')](0xcc)[_0x821a('0x2a')]();});}};}function handleEntityNotFound(_0x1d1585,_0x88f329){return function(_0x4f48a1){if(!_0x4f48a1){_0x1d1585[_0x821a('0x2b')](0x194);}return _0x4f48a1;};}function handleError(_0x507801,_0x46f3db){_0x46f3db=_0x46f3db||0x1f4;return function(_0x554ddd){logger[_0x821a('0x2c')](_0x554ddd['stack']);if(_0x554ddd[_0x821a('0x2d')]){delete _0x554ddd['name'];}_0x507801['status'](_0x46f3db)[_0x821a('0x2e')](_0x554ddd);};}exports[_0x821a('0x2f')]=function(_0x21ef93,_0x382923){var _0x2bc69b={},_0x44f446={},_0x4bf639={'count':0x0,'rows':[]};var _0x31bc6e=_['map'](db[_0x821a('0x30')][_0x821a('0x31')],function(_0x5a3e6a){return{'name':_0x5a3e6a[_0x821a('0x32')],'type':_0x5a3e6a[_0x821a('0x33')]['key']};});_0x44f446[_0x821a('0x34')]=_[_0x821a('0x35')](_0x31bc6e,_0x821a('0x2d'));_0x44f446[_0x821a('0x36')]=_['keys'](_0x21ef93[_0x821a('0x36')]);_0x44f446[_0x821a('0x37')]=_['intersection'](_0x44f446['model'],_0x44f446[_0x821a('0x36')]);_0x2bc69b[_0x821a('0x38')]=_[_0x821a('0x39')](_0x44f446[_0x821a('0x34')],qs[_0x821a('0x3a')](_0x21ef93[_0x821a('0x36')][_0x821a('0x3a')]));_0x2bc69b[_0x821a('0x38')]=_0x2bc69b[_0x821a('0x38')][_0x821a('0x3b')]?_0x2bc69b[_0x821a('0x38')]:_0x44f446[_0x821a('0x34')];if(!_0x21ef93[_0x821a('0x36')]['hasOwnProperty'](_0x821a('0x3c'))){_0x2bc69b[_0x821a('0x20')]=qs[_0x821a('0x20')](_0x21ef93[_0x821a('0x36')]['limit']);_0x2bc69b['offset']=qs[_0x821a('0x1e')](_0x21ef93['query'][_0x821a('0x1e')]);}_0x2bc69b[_0x821a('0x3d')]=qs['sort'](_0x21ef93[_0x821a('0x36')][_0x821a('0x3e')]);_0x2bc69b['where']=qs['filters'](_[_0x821a('0x3f')](_0x21ef93[_0x821a('0x36')],_0x44f446['filters']),_0x31bc6e);if(_0x21ef93[_0x821a('0x36')][_0x821a('0x40')]){_0x2bc69b['where']=_[_0x821a('0x41')](_0x2bc69b['where'],{'$or':_[_0x821a('0x35')](_0x31bc6e,function(_0x476462){if(_0x476462[_0x821a('0x33')]!==_0x821a('0x42')){var _0xa3b7dc={};_0xa3b7dc[_0x476462['name']]={'$like':'%'+_0x21ef93[_0x821a('0x36')]['filter']+'%'};return _0xa3b7dc;}})});}_0x2bc69b=_[_0x821a('0x41')]({},_0x2bc69b,_0x21ef93['options']);var _0x7d43fa={'where':_0x2bc69b[_0x821a('0x43')]};return db['Template'][_0x821a('0x21')](_0x7d43fa)[_0x821a('0x26')](function(_0x2784fe){_0x4bf639['count']=_0x2784fe;if(_0x21ef93[_0x821a('0x36')][_0x821a('0x44')]){_0x2bc69b[_0x821a('0x45')]=[{'all':!![]}];}return db[_0x821a('0x30')][_0x821a('0x46')](_0x2bc69b);})['then'](function(_0x113c83){_0x4bf639[_0x821a('0x47')]=_0x113c83;return _0x4bf639;})[_0x821a('0x26')](respondWithFilteredResult(_0x382923,_0x2bc69b))[_0x821a('0x48')](handleError(_0x382923,null));};exports['show']=function(_0x358f53,_0x14715e){var _0xb2128e={'raw':!![],'where':{'id':_0x358f53[_0x821a('0x49')]['id']}},_0x4a9f4d={};_0x4a9f4d[_0x821a('0x34')]=_['keys'](db[_0x821a('0x30')]['rawAttributes']);_0x4a9f4d[_0x821a('0x36')]=_[_0x821a('0x4a')](_0x358f53['query']);_0x4a9f4d[_0x821a('0x37')]=_[_0x821a('0x39')](_0x4a9f4d[_0x821a('0x34')],_0x4a9f4d[_0x821a('0x36')]);_0xb2128e[_0x821a('0x38')]=_[_0x821a('0x39')](_0x4a9f4d['model'],qs['fields'](_0x358f53[_0x821a('0x36')][_0x821a('0x3a')]));_0xb2128e[_0x821a('0x38')]=_0xb2128e['attributes'][_0x821a('0x3b')]?_0xb2128e[_0x821a('0x38')]:_0x4a9f4d['model'];if(_0x358f53['query'][_0x821a('0x44')]){_0xb2128e[_0x821a('0x45')]=[{'all':!![]}];}_0xb2128e=_[_0x821a('0x41')]({},_0xb2128e,_0x358f53[_0x821a('0x4b')]);return db[_0x821a('0x30')][_0x821a('0x4c')](_0xb2128e)[_0x821a('0x26')](handleEntityNotFound(_0x14715e,null))[_0x821a('0x26')](respondWithResult(_0x14715e,null))[_0x821a('0x48')](handleError(_0x14715e,null));};exports[_0x821a('0x4d')]=function(_0x4a6c69,_0x116e95){return db[_0x821a('0x30')]['create'](_0x4a6c69[_0x821a('0x4e')],{})[_0x821a('0x26')](function(_0x40d66d){var _0x28139f=_0x4a6c69[_0x821a('0x4f')][_0x821a('0x27')]({'plain':!![]});if(!_0x28139f)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x28139f['role']===_0x821a('0x4f')){var _0xfab6e3=_0x40d66d[_0x821a('0x27')]({'plain':!![]});var _0x270f89=_0x821a('0x50');return db[_0x821a('0x51')][_0x821a('0x4c')]({'where':{'name':_0x270f89,'userProfileId':_0x28139f[_0x821a('0x52')]},'raw':!![]})[_0x821a('0x26')](function(_0x5e9f07){if(_0x5e9f07&&_0x5e9f07[_0x821a('0x53')]===0x0){return db[_0x821a('0x28')][_0x821a('0x4d')]({'name':_0xfab6e3[_0x821a('0x2d')],'resourceId':_0xfab6e3['id'],'type':_0x5e9f07[_0x821a('0x2d')],'sectionId':_0x5e9f07['id']},{})[_0x821a('0x26')](function(){return _0x40d66d;});}else{return _0x40d66d;}})[_0x821a('0x48')](function(_0x4af15e){logger[_0x821a('0x2c')](_0x821a('0x54'),_0x4af15e);throw _0x4af15e;});}return _0x40d66d;})[_0x821a('0x26')](respondWithResult(_0x116e95,0xc9))['catch'](handleError(_0x116e95,null));};exports[_0x821a('0x25')]=function(_0x15d03b,_0x141a66){if(_0x15d03b[_0x821a('0x4e')]['id']){delete _0x15d03b[_0x821a('0x4e')]['id'];}return db[_0x821a('0x30')][_0x821a('0x4c')]({'where':{'id':_0x15d03b[_0x821a('0x49')]['id']}})[_0x821a('0x26')](handleEntityNotFound(_0x141a66,null))[_0x821a('0x26')](saveUpdates(_0x15d03b[_0x821a('0x4e')],null))[_0x821a('0x26')](respondWithResult(_0x141a66,null))[_0x821a('0x48')](handleError(_0x141a66,null));};exports[_0x821a('0x29')]=function(_0x5a3114,_0x31c140){return db[_0x821a('0x30')][_0x821a('0x4c')]({'where':{'id':_0x5a3114[_0x821a('0x49')]['id']}})[_0x821a('0x26')](handleEntityNotFound(_0x31c140,null))[_0x821a('0x26')](removeEntity(_0x31c140,null))[_0x821a('0x48')](handleError(_0x31c140,null));};