Built motion from commit (unavailable).|2.5.31
[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 _0x3b00=['papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','merge','body','message','agent','interaction','account','index','Template','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','options','includeAll','include','findAll','rows','show','keys','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Templates','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce'];(function(_0x54c9dd,_0x233a86){var _0x855156=function(_0x2dd60b){while(--_0x2dd60b){_0x54c9dd['push'](_0x54c9dd['shift']());}};_0x855156(++_0x233a86);}(_0x3b00,0x151));var _0x03b0=function(_0x1e8ddf,_0x1f1f3f){_0x1e8ddf=_0x1e8ddf-0x0;var _0x418fbc=_0x3b00[_0x1e8ddf];return _0x418fbc;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x03b0('0x0'));var zipdir=require(_0x03b0('0x1'));var jsonpatch=require(_0x03b0('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x03b0('0x3'));var Mustache=require(_0x03b0('0x4'));var util=require(_0x03b0('0x5'));var path=require(_0x03b0('0x6'));var sox=require(_0x03b0('0x7'));var csv=require(_0x03b0('0x8'));var ejs=require(_0x03b0('0x9'));var fs=require('fs');var fs_extra=require(_0x03b0('0xa'));var _=require(_0x03b0('0xb'));var squel=require(_0x03b0('0xc'));var crypto=require(_0x03b0('0xd'));var jsforce=require(_0x03b0('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x03b0('0x8'));var querystring=require('querystring');var Papa=require(_0x03b0('0xf'));var Redis=require(_0x03b0('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x03b0('0x11'));var as=require(_0x03b0('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x03b0('0x13'))(_0x03b0('0x14'));var utils=require(_0x03b0('0x15'));var config=require(_0x03b0('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x03b0('0x17'))['db'];function respondWithStatusCode(_0x160874,_0x122b01){_0x122b01=_0x122b01||0xcc;return function(_0x32ddab){if(_0x32ddab){return _0x160874[_0x03b0('0x18')](_0x122b01);}return _0x160874[_0x03b0('0x19')](_0x122b01)[_0x03b0('0x1a')]();};}function respondWithResult(_0x207fc6,_0x2e825d){_0x2e825d=_0x2e825d||0xc8;return function(_0x3bdcea){if(_0x3bdcea){return _0x207fc6['status'](_0x2e825d)[_0x03b0('0x1b')](_0x3bdcea);}};}function respondWithFilteredResult(_0x5939f2,_0x22f5ef){return function(_0x427c90){if(_0x427c90){var _0x221652=typeof _0x22f5ef['offset']==='undefined'&&typeof _0x22f5ef['limit']==='undefined';var _0x599dcd=_0x427c90[_0x03b0('0x1c')];var _0x4a682a=_0x221652?0x0:_0x22f5ef[_0x03b0('0x1d')];var _0x55238c=_0x221652?_0x427c90[_0x03b0('0x1c')]:_0x22f5ef['offset']+_0x22f5ef[_0x03b0('0x1e')];var _0x23b335;if(_0x55238c>=_0x599dcd){_0x55238c=_0x599dcd;_0x23b335=0xc8;}else{_0x23b335=0xce;}_0x5939f2[_0x03b0('0x19')](_0x23b335);return _0x5939f2[_0x03b0('0x1f')]('Content-Range',_0x4a682a+'-'+_0x55238c+'/'+_0x599dcd)[_0x03b0('0x1b')](_0x427c90);}return null;};}function patchUpdates(_0x12f5d0){return function(_0x11dcf7){try{jsonpatch[_0x03b0('0x20')](_0x11dcf7,_0x12f5d0,!![]);}catch(_0x494485){return BPromise[_0x03b0('0x21')](_0x494485);}return _0x11dcf7[_0x03b0('0x22')]();};}function saveUpdates(_0x6c5b41,_0x46961d){return function(_0x4d2490){if(_0x4d2490){return _0x4d2490[_0x03b0('0x23')](_0x6c5b41)[_0x03b0('0x24')](function(_0x3c3741){return _0x3c3741;});}return null;};}function removeEntity(_0x12852f,_0x42e158){return function(_0x15b33a){if(_0x15b33a){return _0x15b33a[_0x03b0('0x25')]()[_0x03b0('0x24')](function(){var _0x42770b=_0x15b33a[_0x03b0('0x26')]({'plain':!![]});var _0x222f90='Templates';return db[_0x03b0('0x27')][_0x03b0('0x25')]({'where':{'type':_0x222f90,'resourceId':_0x42770b['id']}})[_0x03b0('0x24')](function(){return _0x15b33a;});})['then'](function(){_0x12852f[_0x03b0('0x19')](0xcc)[_0x03b0('0x1a')]();});}};}function handleEntityNotFound(_0x145ce7,_0x444eb3){return function(_0x354aec){if(!_0x354aec){_0x145ce7[_0x03b0('0x18')](0x194);}return _0x354aec;};}function handleError(_0x82bac4,_0x1ebd34){_0x1ebd34=_0x1ebd34||0x1f4;return function(_0xc56e7){logger[_0x03b0('0x28')](_0xc56e7[_0x03b0('0x29')]);if(_0xc56e7['name']){delete _0xc56e7[_0x03b0('0x2a')];}_0x82bac4['status'](_0x1ebd34)[_0x03b0('0x2b')](_0xc56e7);};}function getMustacheRender(_0x2f96c7,_0x17782f){return Mustache['render'](_0x2f96c7,_[_0x03b0('0x2c')](_0x17782f[_0x03b0('0x2d')],{'contact':_0x17782f['contact'],'message':_0x17782f[_0x03b0('0x2e')],'agent':_0x17782f[_0x03b0('0x2f')],'interaction':_0x17782f[_0x03b0('0x30')],'account':_0x17782f[_0x03b0('0x31')]}))||'';}exports[_0x03b0('0x32')]=function(_0x557d5a,_0x475774){var _0x4bc590={},_0x4cd315={},_0x5d1033={'count':0x0,'rows':[]};var _0x29f333=_['map'](db[_0x03b0('0x33')][_0x03b0('0x34')],function(_0x4ccc6f){return{'name':_0x4ccc6f[_0x03b0('0x35')],'type':_0x4ccc6f[_0x03b0('0x36')][_0x03b0('0x37')]};});_0x4cd315[_0x03b0('0x38')]=_[_0x03b0('0x39')](_0x29f333,'name');_0x4cd315[_0x03b0('0x3a')]=_['keys'](_0x557d5a['query']);_0x4cd315[_0x03b0('0x3b')]=_[_0x03b0('0x3c')](_0x4cd315['model'],_0x4cd315[_0x03b0('0x3a')]);_0x4bc590[_0x03b0('0x3d')]=_[_0x03b0('0x3c')](_0x4cd315[_0x03b0('0x38')],qs[_0x03b0('0x3e')](_0x557d5a[_0x03b0('0x3a')]['fields']));_0x4bc590[_0x03b0('0x3d')]=_0x4bc590[_0x03b0('0x3d')][_0x03b0('0x3f')]?_0x4bc590[_0x03b0('0x3d')]:_0x4cd315[_0x03b0('0x38')];if(!_0x557d5a[_0x03b0('0x3a')][_0x03b0('0x40')](_0x03b0('0x41'))){_0x4bc590[_0x03b0('0x1e')]=qs[_0x03b0('0x1e')](_0x557d5a[_0x03b0('0x3a')][_0x03b0('0x1e')]);_0x4bc590[_0x03b0('0x1d')]=qs[_0x03b0('0x1d')](_0x557d5a[_0x03b0('0x3a')][_0x03b0('0x1d')]);}_0x4bc590[_0x03b0('0x42')]=qs[_0x03b0('0x43')](_0x557d5a['query'][_0x03b0('0x43')]);_0x4bc590[_0x03b0('0x44')]=qs[_0x03b0('0x3b')](_['pick'](_0x557d5a[_0x03b0('0x3a')],_0x4cd315['filters']),_0x29f333);if(_0x557d5a[_0x03b0('0x3a')][_0x03b0('0x45')]){_0x4bc590[_0x03b0('0x44')]=_[_0x03b0('0x2c')](_0x4bc590['where'],{'$or':_['map'](_0x29f333,function(_0x2cb139){if(_0x2cb139['type']!==_0x03b0('0x46')){var _0x494533={};_0x494533[_0x2cb139[_0x03b0('0x2a')]]={'$like':'%'+_0x557d5a[_0x03b0('0x3a')][_0x03b0('0x45')]+'%'};return _0x494533;}})});}_0x4bc590=_[_0x03b0('0x2c')]({},_0x4bc590,_0x557d5a[_0x03b0('0x47')]);var _0x223852={'where':_0x4bc590[_0x03b0('0x44')]};return db[_0x03b0('0x33')][_0x03b0('0x1c')](_0x223852)[_0x03b0('0x24')](function(_0x3442e9){_0x5d1033[_0x03b0('0x1c')]=_0x3442e9;if(_0x557d5a['query'][_0x03b0('0x48')]){_0x4bc590[_0x03b0('0x49')]=[{'all':!![]}];}return db['Template'][_0x03b0('0x4a')](_0x4bc590);})[_0x03b0('0x24')](function(_0x292679){_0x5d1033[_0x03b0('0x4b')]=_0x292679;return _0x5d1033;})[_0x03b0('0x24')](respondWithFilteredResult(_0x475774,_0x4bc590))['catch'](handleError(_0x475774,null));};exports[_0x03b0('0x4c')]=function(_0x2f669e,_0x38445f){var _0x1db3e3={'raw':!![],'where':{'id':_0x2f669e['params']['id']}},_0x39cf09={};_0x39cf09[_0x03b0('0x38')]=_[_0x03b0('0x4d')](db[_0x03b0('0x33')][_0x03b0('0x34')]);_0x39cf09[_0x03b0('0x3a')]=_['keys'](_0x2f669e[_0x03b0('0x3a')]);_0x39cf09[_0x03b0('0x3b')]=_['intersection'](_0x39cf09[_0x03b0('0x38')],_0x39cf09['query']);_0x1db3e3[_0x03b0('0x3d')]=_['intersection'](_0x39cf09['model'],qs['fields'](_0x2f669e[_0x03b0('0x3a')][_0x03b0('0x3e')]));_0x1db3e3[_0x03b0('0x3d')]=_0x1db3e3[_0x03b0('0x3d')][_0x03b0('0x3f')]?_0x1db3e3[_0x03b0('0x3d')]:_0x39cf09['model'];if(_0x2f669e[_0x03b0('0x3a')][_0x03b0('0x48')]){_0x1db3e3['include']=[{'all':!![]}];}_0x1db3e3=_[_0x03b0('0x2c')]({},_0x1db3e3,_0x2f669e[_0x03b0('0x47')]);return db['Template'][_0x03b0('0x4e')](_0x1db3e3)['then'](handleEntityNotFound(_0x38445f,null))[_0x03b0('0x24')](respondWithResult(_0x38445f,null))[_0x03b0('0x4f')](handleError(_0x38445f,null));};exports[_0x03b0('0x50')]=function(_0x1dbb1b,_0x25a1ee){return db['Template']['create'](_0x1dbb1b[_0x03b0('0x2d')],{})[_0x03b0('0x24')](function(_0x957c65){var _0x11217c=_0x1dbb1b[_0x03b0('0x51')][_0x03b0('0x26')]({'plain':!![]});if(!_0x11217c)throw new Error(_0x03b0('0x52'));if(_0x11217c['role']==='user'){var _0x1d8d8f=_0x957c65[_0x03b0('0x26')]({'plain':!![]});var _0x17c0df=_0x03b0('0x53');return db['UserProfileSection'][_0x03b0('0x4e')]({'where':{'name':_0x17c0df,'userProfileId':_0x11217c[_0x03b0('0x54')]},'raw':!![]})['then'](function(_0x671856){if(_0x671856&&_0x671856[_0x03b0('0x55')]===0x0){return db[_0x03b0('0x27')][_0x03b0('0x50')]({'name':_0x1d8d8f[_0x03b0('0x2a')],'resourceId':_0x1d8d8f['id'],'type':_0x671856[_0x03b0('0x2a')],'sectionId':_0x671856['id']},{})[_0x03b0('0x24')](function(){return _0x957c65;});}else{return _0x957c65;}})[_0x03b0('0x4f')](function(_0x4e00c9){logger[_0x03b0('0x28')](_0x03b0('0x56'),_0x4e00c9);throw _0x4e00c9;});}return _0x957c65;})[_0x03b0('0x24')](respondWithResult(_0x25a1ee,0xc9))[_0x03b0('0x4f')](handleError(_0x25a1ee,null));};exports[_0x03b0('0x23')]=function(_0x4f9e03,_0x401da7){if(_0x4f9e03[_0x03b0('0x2d')]['id']){delete _0x4f9e03['body']['id'];}return db['Template'][_0x03b0('0x4e')]({'where':{'id':_0x4f9e03[_0x03b0('0x57')]['id']}})[_0x03b0('0x24')](handleEntityNotFound(_0x401da7,null))['then'](saveUpdates(_0x4f9e03[_0x03b0('0x2d')],null))[_0x03b0('0x24')](respondWithResult(_0x401da7,null))['catch'](handleError(_0x401da7,null));};exports[_0x03b0('0x25')]=function(_0x3694f9,_0x2006cb){return db[_0x03b0('0x33')][_0x03b0('0x4e')]({'where':{'id':_0x3694f9[_0x03b0('0x57')]['id']}})[_0x03b0('0x24')](handleEntityNotFound(_0x2006cb,null))['then'](removeEntity(_0x2006cb,null))[_0x03b0('0x4f')](handleError(_0x2006cb,null));};