Built motion from commit 25580385.|2.6.2
[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 _0xee9e=['name','send','Template','rawAttributes','fieldName','type','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','where','pick','filter','VIRTUAL','merge','options','includeAll','include','rows','catch','show','params','keys','find','create','body','user','role','Templates','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','rimraf','fast-json-patch','request-promise','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','then','destroy','get','sendStatus'];(function(_0x2744ef,_0xb558b6){var _0x183b28=function(_0x28529d){while(--_0x28529d){_0x2744ef['push'](_0x2744ef['shift']());}};_0x183b28(++_0xb558b6);}(_0xee9e,0x7a));var _0xeee9=function(_0x229bef,_0x1357d4){_0x229bef=_0x229bef-0x0;var _0x173e6a=_0xee9e[_0x229bef];return _0x173e6a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xeee9('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xeee9('0x1'));var rp=require(_0xeee9('0x2'));var moment=require('moment');var BPromise=require(_0xeee9('0x3'));var Mustache=require(_0xeee9('0x4'));var util=require('util');var path=require('path');var sox=require(_0xeee9('0x5'));var csv=require(_0xeee9('0x6'));var ejs=require(_0xeee9('0x7'));var fs=require('fs');var fs_extra=require(_0xeee9('0x8'));var _=require(_0xeee9('0x9'));var squel=require(_0xeee9('0xa'));var crypto=require('crypto');var jsforce=require(_0xeee9('0xb'));var deskjs=require(_0xeee9('0xc'));var toCsv=require(_0xeee9('0x6'));var querystring=require(_0xeee9('0xd'));var Papa=require('papaparse');var Redis=require(_0xeee9('0xe'));var authService=require(_0xeee9('0xf'));var qs=require(_0xeee9('0x10'));var as=require(_0xeee9('0x11'));var hardwareService=require(_0xeee9('0x12'));var logger=require(_0xeee9('0x13'))(_0xeee9('0x14'));var utils=require(_0xeee9('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xeee9('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x45166a,_0x573eb0){_0x573eb0=_0x573eb0||0xcc;return function(_0x545de2){if(_0x545de2){return _0x45166a['sendStatus'](_0x573eb0);}return _0x45166a[_0xeee9('0x17')](_0x573eb0)[_0xeee9('0x18')]();};}function respondWithResult(_0x5c09fa,_0xd71049){_0xd71049=_0xd71049||0xc8;return function(_0x44540c){if(_0x44540c){return _0x5c09fa[_0xeee9('0x17')](_0xd71049)[_0xeee9('0x19')](_0x44540c);}};}function respondWithFilteredResult(_0x20e380,_0x533fe6){return function(_0x19854a){if(_0x19854a){var _0x103c88=typeof _0x533fe6[_0xeee9('0x1a')]===_0xeee9('0x1b')&&typeof _0x533fe6['limit']===_0xeee9('0x1b');var _0x519469=_0x19854a['count'];var _0x1fdcc0=_0x103c88?0x0:_0x533fe6[_0xeee9('0x1a')];var _0x5a03a5=_0x103c88?_0x19854a[_0xeee9('0x1c')]:_0x533fe6[_0xeee9('0x1a')]+_0x533fe6['limit'];var _0x44094f;if(_0x5a03a5>=_0x519469){_0x5a03a5=_0x519469;_0x44094f=0xc8;}else{_0x44094f=0xce;}_0x20e380[_0xeee9('0x17')](_0x44094f);return _0x20e380[_0xeee9('0x1d')](_0xeee9('0x1e'),_0x1fdcc0+'-'+_0x5a03a5+'/'+_0x519469)[_0xeee9('0x19')](_0x19854a);}return null;};}function patchUpdates(_0x17c6be){return function(_0x40572b){try{jsonpatch[_0xeee9('0x1f')](_0x40572b,_0x17c6be,!![]);}catch(_0x25b9e4){return BPromise[_0xeee9('0x20')](_0x25b9e4);}return _0x40572b[_0xeee9('0x21')]();};}function saveUpdates(_0x20993e,_0x4a0977){return function(_0x250cc5){if(_0x250cc5){return _0x250cc5['update'](_0x20993e)[_0xeee9('0x22')](function(_0x50cc4a){return _0x50cc4a;});}return null;};}function removeEntity(_0x5ed98a,_0x138eaf){return function(_0x4fecd0){if(_0x4fecd0){return _0x4fecd0[_0xeee9('0x23')]()['then'](function(){var _0x1700d2=_0x4fecd0[_0xeee9('0x24')]({'plain':!![]});var _0x2699c3='Templates';return db['UserProfileResource'][_0xeee9('0x23')]({'where':{'type':_0x2699c3,'resourceId':_0x1700d2['id']}})[_0xeee9('0x22')](function(){return _0x4fecd0;});})['then'](function(){_0x5ed98a['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x353766,_0x55ea59){return function(_0x4f7c51){if(!_0x4f7c51){_0x353766[_0xeee9('0x25')](0x194);}return _0x4f7c51;};}function handleError(_0x4de963,_0x5f0a9b){_0x5f0a9b=_0x5f0a9b||0x1f4;return function(_0x57d4a2){logger['error'](_0x57d4a2['stack']);if(_0x57d4a2[_0xeee9('0x26')]){delete _0x57d4a2[_0xeee9('0x26')];}_0x4de963['status'](_0x5f0a9b)[_0xeee9('0x27')](_0x57d4a2);};}exports['index']=function(_0x5c8cc9,_0x16418b){var _0x35d1eb={},_0x23ed89={},_0x1b829f={'count':0x0,'rows':[]};var _0x4afaa2=_['map'](db[_0xeee9('0x28')][_0xeee9('0x29')],function(_0x2fa075){return{'name':_0x2fa075[_0xeee9('0x2a')],'type':_0x2fa075[_0xeee9('0x2b')]['key']};});_0x23ed89[_0xeee9('0x2c')]=_[_0xeee9('0x2d')](_0x4afaa2,_0xeee9('0x26'));_0x23ed89[_0xeee9('0x2e')]=_['keys'](_0x5c8cc9[_0xeee9('0x2e')]);_0x23ed89[_0xeee9('0x2f')]=_[_0xeee9('0x30')](_0x23ed89[_0xeee9('0x2c')],_0x23ed89['query']);_0x35d1eb[_0xeee9('0x31')]=_[_0xeee9('0x30')](_0x23ed89[_0xeee9('0x2c')],qs[_0xeee9('0x32')](_0x5c8cc9[_0xeee9('0x2e')][_0xeee9('0x32')]));_0x35d1eb[_0xeee9('0x31')]=_0x35d1eb[_0xeee9('0x31')][_0xeee9('0x33')]?_0x35d1eb[_0xeee9('0x31')]:_0x23ed89['model'];if(!_0x5c8cc9[_0xeee9('0x2e')][_0xeee9('0x34')](_0xeee9('0x35'))){_0x35d1eb['limit']=qs['limit'](_0x5c8cc9[_0xeee9('0x2e')]['limit']);_0x35d1eb[_0xeee9('0x1a')]=qs[_0xeee9('0x1a')](_0x5c8cc9['query'][_0xeee9('0x1a')]);}_0x35d1eb['order']=qs['sort'](_0x5c8cc9[_0xeee9('0x2e')]['sort']);_0x35d1eb[_0xeee9('0x36')]=qs[_0xeee9('0x2f')](_[_0xeee9('0x37')](_0x5c8cc9['query'],_0x23ed89[_0xeee9('0x2f')]),_0x4afaa2);if(_0x5c8cc9['query'][_0xeee9('0x38')]){_0x35d1eb[_0xeee9('0x36')]=_['merge'](_0x35d1eb['where'],{'$or':_[_0xeee9('0x2d')](_0x4afaa2,function(_0x27048c){if(_0x27048c[_0xeee9('0x2b')]!==_0xeee9('0x39')){var _0x298c48={};_0x298c48[_0x27048c[_0xeee9('0x26')]]={'$like':'%'+_0x5c8cc9[_0xeee9('0x2e')][_0xeee9('0x38')]+'%'};return _0x298c48;}})});}_0x35d1eb=_[_0xeee9('0x3a')]({},_0x35d1eb,_0x5c8cc9[_0xeee9('0x3b')]);var _0x40b54e={'where':_0x35d1eb[_0xeee9('0x36')]};return db[_0xeee9('0x28')][_0xeee9('0x1c')](_0x40b54e)[_0xeee9('0x22')](function(_0x32f833){_0x1b829f['count']=_0x32f833;if(_0x5c8cc9['query'][_0xeee9('0x3c')]){_0x35d1eb[_0xeee9('0x3d')]=[{'all':!![]}];}return db[_0xeee9('0x28')]['findAll'](_0x35d1eb);})[_0xeee9('0x22')](function(_0x53f18a){_0x1b829f[_0xeee9('0x3e')]=_0x53f18a;return _0x1b829f;})['then'](respondWithFilteredResult(_0x16418b,_0x35d1eb))[_0xeee9('0x3f')](handleError(_0x16418b,null));};exports[_0xeee9('0x40')]=function(_0x37e9a3,_0x1f0ea2){var _0x191459={'raw':!![],'where':{'id':_0x37e9a3[_0xeee9('0x41')]['id']}},_0x345cb1={};_0x345cb1[_0xeee9('0x2c')]=_[_0xeee9('0x42')](db['Template'][_0xeee9('0x29')]);_0x345cb1[_0xeee9('0x2e')]=_[_0xeee9('0x42')](_0x37e9a3[_0xeee9('0x2e')]);_0x345cb1[_0xeee9('0x2f')]=_[_0xeee9('0x30')](_0x345cb1['model'],_0x345cb1[_0xeee9('0x2e')]);_0x191459['attributes']=_[_0xeee9('0x30')](_0x345cb1[_0xeee9('0x2c')],qs[_0xeee9('0x32')](_0x37e9a3[_0xeee9('0x2e')][_0xeee9('0x32')]));_0x191459['attributes']=_0x191459[_0xeee9('0x31')][_0xeee9('0x33')]?_0x191459[_0xeee9('0x31')]:_0x345cb1[_0xeee9('0x2c')];if(_0x37e9a3[_0xeee9('0x2e')][_0xeee9('0x3c')]){_0x191459['include']=[{'all':!![]}];}_0x191459=_['merge']({},_0x191459,_0x37e9a3['options']);return db[_0xeee9('0x28')][_0xeee9('0x43')](_0x191459)[_0xeee9('0x22')](handleEntityNotFound(_0x1f0ea2,null))['then'](respondWithResult(_0x1f0ea2,null))['catch'](handleError(_0x1f0ea2,null));};exports['create']=function(_0x31bea7,_0x135c20){return db[_0xeee9('0x28')][_0xeee9('0x44')](_0x31bea7[_0xeee9('0x45')],{})[_0xeee9('0x22')](function(_0x3640ca){var _0x5082fe=_0x31bea7[_0xeee9('0x46')]['get']({'plain':!![]});if(!_0x5082fe)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5082fe[_0xeee9('0x47')]===_0xeee9('0x46')){var _0x31d8db=_0x3640ca[_0xeee9('0x24')]({'plain':!![]});var _0xfea4fe=_0xeee9('0x48');return db[_0xeee9('0x49')][_0xeee9('0x43')]({'where':{'name':_0xfea4fe,'userProfileId':_0x5082fe[_0xeee9('0x4a')]},'raw':!![]})[_0xeee9('0x22')](function(_0x28cb7d){if(_0x28cb7d&&_0x28cb7d[_0xeee9('0x4b')]===0x0){return db[_0xeee9('0x4c')]['create']({'name':_0x31d8db[_0xeee9('0x26')],'resourceId':_0x31d8db['id'],'type':_0x28cb7d[_0xeee9('0x26')],'sectionId':_0x28cb7d['id']},{})[_0xeee9('0x22')](function(){return _0x3640ca;});}else{return _0x3640ca;}})[_0xeee9('0x3f')](function(_0x29661d){logger[_0xeee9('0x4d')](_0xeee9('0x4e'),_0x29661d);throw _0x29661d;});}return _0x3640ca;})['then'](respondWithResult(_0x135c20,0xc9))[_0xeee9('0x3f')](handleError(_0x135c20,null));};exports[_0xeee9('0x4f')]=function(_0x46a501,_0x253331){if(_0x46a501[_0xeee9('0x45')]['id']){delete _0x46a501['body']['id'];}return db[_0xeee9('0x28')][_0xeee9('0x43')]({'where':{'id':_0x46a501[_0xeee9('0x41')]['id']}})[_0xeee9('0x22')](handleEntityNotFound(_0x253331,null))['then'](saveUpdates(_0x46a501[_0xeee9('0x45')],null))['then'](respondWithResult(_0x253331,null))[_0xeee9('0x3f')](handleError(_0x253331,null));};exports[_0xeee9('0x23')]=function(_0x3942db,_0x579cbe){return db[_0xeee9('0x28')][_0xeee9('0x43')]({'where':{'id':_0x3942db['params']['id']}})[_0xeee9('0x22')](handleEntityNotFound(_0x579cbe,null))[_0xeee9('0x22')](removeEntity(_0x579cbe,null))['catch'](handleError(_0x579cbe,null));};