Built motion from commit 3c2ce842.|2.6.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 _0x9f38=['user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','zip-dir','fast-json-patch','request-promise','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','update','then','destroy','get','Templates','UserProfileResource','sendStatus','error','stack','name','send','index','map','Template','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','VIRTUAL','filter','merge','options','include','findAll','catch','show','params','rawAttributes','create'];(function(_0x5b9030,_0x178a3e){var _0x3708ff=function(_0x232e5f){while(--_0x232e5f){_0x5b9030['push'](_0x5b9030['shift']());}};_0x3708ff(++_0x178a3e);}(_0x9f38,0x153));var _0x89f3=function(_0x1f87c4,_0x4bc99f){_0x1f87c4=_0x1f87c4-0x0;var _0x4cd2e4=_0x9f38[_0x1f87c4];return _0x4cd2e4;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x89f3('0x0'));var jsonpatch=require(_0x89f3('0x1'));var rp=require(_0x89f3('0x2'));var moment=require('moment');var BPromise=require(_0x89f3('0x3'));var Mustache=require('mustache');var util=require('util');var path=require(_0x89f3('0x4'));var sox=require(_0x89f3('0x5'));var csv=require(_0x89f3('0x6'));var ejs=require(_0x89f3('0x7'));var fs=require('fs');var fs_extra=require(_0x89f3('0x8'));var _=require(_0x89f3('0x9'));var squel=require(_0x89f3('0xa'));var crypto=require('crypto');var jsforce=require(_0x89f3('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x89f3('0xc'));var Papa=require(_0x89f3('0xd'));var Redis=require(_0x89f3('0xe'));var authService=require(_0x89f3('0xf'));var qs=require(_0x89f3('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x89f3('0x11'));var logger=require(_0x89f3('0x12'))(_0x89f3('0x13'));var utils=require(_0x89f3('0x14'));var config=require(_0x89f3('0x15'));var licenseUtil=require(_0x89f3('0x16'));var db=require(_0x89f3('0x17'))['db'];function respondWithStatusCode(_0xfde927,_0x100e1e){_0x100e1e=_0x100e1e||0xcc;return function(_0x17956c){if(_0x17956c){return _0xfde927['sendStatus'](_0x100e1e);}return _0xfde927[_0x89f3('0x18')](_0x100e1e)[_0x89f3('0x19')]();};}function respondWithResult(_0x2133ab,_0x1a4e71){_0x1a4e71=_0x1a4e71||0xc8;return function(_0x3a99e0){if(_0x3a99e0){return _0x2133ab['status'](_0x1a4e71)['json'](_0x3a99e0);}};}function respondWithFilteredResult(_0x3c9b7a,_0x3aa22e){return function(_0x15059b){if(_0x15059b){var _0x525051=typeof _0x3aa22e[_0x89f3('0x1a')]===_0x89f3('0x1b')&&typeof _0x3aa22e[_0x89f3('0x1c')]===_0x89f3('0x1b');var _0x58de06=_0x15059b['count'];var _0x409244=_0x525051?0x0:_0x3aa22e['offset'];var _0x51a0e8=_0x525051?_0x15059b[_0x89f3('0x1d')]:_0x3aa22e['offset']+_0x3aa22e[_0x89f3('0x1c')];var _0xe7fffc;if(_0x51a0e8>=_0x58de06){_0x51a0e8=_0x58de06;_0xe7fffc=0xc8;}else{_0xe7fffc=0xce;}_0x3c9b7a[_0x89f3('0x18')](_0xe7fffc);return _0x3c9b7a[_0x89f3('0x1e')](_0x89f3('0x1f'),_0x409244+'-'+_0x51a0e8+'/'+_0x58de06)[_0x89f3('0x20')](_0x15059b);}return null;};}function patchUpdates(_0xc95590){return function(_0x28a014){try{jsonpatch[_0x89f3('0x21')](_0x28a014,_0xc95590,!![]);}catch(_0x3b7a34){return BPromise[_0x89f3('0x22')](_0x3b7a34);}return _0x28a014['save']();};}function saveUpdates(_0x4cc56a,_0x18f057){return function(_0x1dc895){if(_0x1dc895){return _0x1dc895[_0x89f3('0x23')](_0x4cc56a)[_0x89f3('0x24')](function(_0x368e54){return _0x368e54;});}return null;};}function removeEntity(_0x9f6db2,_0x4e685b){return function(_0xad400f){if(_0xad400f){return _0xad400f[_0x89f3('0x25')]()[_0x89f3('0x24')](function(){var _0x439bea=_0xad400f[_0x89f3('0x26')]({'plain':!![]});var _0x7f494d=_0x89f3('0x27');return db[_0x89f3('0x28')]['destroy']({'where':{'type':_0x7f494d,'resourceId':_0x439bea['id']}})[_0x89f3('0x24')](function(){return _0xad400f;});})[_0x89f3('0x24')](function(){_0x9f6db2[_0x89f3('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5dbda9,_0x309014){return function(_0x32dec7){if(!_0x32dec7){_0x5dbda9[_0x89f3('0x29')](0x194);}return _0x32dec7;};}function handleError(_0x4b016e,_0x18a106){_0x18a106=_0x18a106||0x1f4;return function(_0x44cf17){logger[_0x89f3('0x2a')](_0x44cf17[_0x89f3('0x2b')]);if(_0x44cf17[_0x89f3('0x2c')]){delete _0x44cf17[_0x89f3('0x2c')];}_0x4b016e[_0x89f3('0x18')](_0x18a106)[_0x89f3('0x2d')](_0x44cf17);};}exports[_0x89f3('0x2e')]=function(_0x3506ce,_0x18dcfa){var _0x36929b={},_0x3b4e52={},_0x284400={'count':0x0,'rows':[]};var _0x3fb632=_[_0x89f3('0x2f')](db[_0x89f3('0x30')]['rawAttributes'],function(_0x3d335c){return{'name':_0x3d335c[_0x89f3('0x31')],'type':_0x3d335c[_0x89f3('0x32')][_0x89f3('0x33')]};});_0x3b4e52[_0x89f3('0x34')]=_[_0x89f3('0x2f')](_0x3fb632,_0x89f3('0x2c'));_0x3b4e52[_0x89f3('0x35')]=_[_0x89f3('0x36')](_0x3506ce[_0x89f3('0x35')]);_0x3b4e52[_0x89f3('0x37')]=_[_0x89f3('0x38')](_0x3b4e52[_0x89f3('0x34')],_0x3b4e52[_0x89f3('0x35')]);_0x36929b[_0x89f3('0x39')]=_[_0x89f3('0x38')](_0x3b4e52[_0x89f3('0x34')],qs[_0x89f3('0x3a')](_0x3506ce[_0x89f3('0x35')][_0x89f3('0x3a')]));_0x36929b[_0x89f3('0x39')]=_0x36929b[_0x89f3('0x39')][_0x89f3('0x3b')]?_0x36929b[_0x89f3('0x39')]:_0x3b4e52[_0x89f3('0x34')];if(!_0x3506ce[_0x89f3('0x35')]['hasOwnProperty'](_0x89f3('0x3c'))){_0x36929b['limit']=qs[_0x89f3('0x1c')](_0x3506ce['query'][_0x89f3('0x1c')]);_0x36929b[_0x89f3('0x1a')]=qs[_0x89f3('0x1a')](_0x3506ce[_0x89f3('0x35')]['offset']);}_0x36929b[_0x89f3('0x3d')]=qs[_0x89f3('0x3e')](_0x3506ce[_0x89f3('0x35')]['sort']);_0x36929b[_0x89f3('0x3f')]=qs[_0x89f3('0x37')](_[_0x89f3('0x40')](_0x3506ce['query'],_0x3b4e52[_0x89f3('0x37')]),_0x3fb632);if(_0x3506ce[_0x89f3('0x35')]['filter']){_0x36929b[_0x89f3('0x3f')]=_['merge'](_0x36929b['where'],{'$or':_[_0x89f3('0x2f')](_0x3fb632,function(_0x2f6c90){if(_0x2f6c90[_0x89f3('0x32')]!==_0x89f3('0x41')){var _0x2ea4ca={};_0x2ea4ca[_0x2f6c90['name']]={'$like':'%'+_0x3506ce[_0x89f3('0x35')][_0x89f3('0x42')]+'%'};return _0x2ea4ca;}})});}_0x36929b=_[_0x89f3('0x43')]({},_0x36929b,_0x3506ce[_0x89f3('0x44')]);var _0x9edf9e={'where':_0x36929b[_0x89f3('0x3f')]};return db[_0x89f3('0x30')][_0x89f3('0x1d')](_0x9edf9e)[_0x89f3('0x24')](function(_0x2fbf1e){_0x284400[_0x89f3('0x1d')]=_0x2fbf1e;if(_0x3506ce[_0x89f3('0x35')]['includeAll']){_0x36929b[_0x89f3('0x45')]=[{'all':!![]}];}return db[_0x89f3('0x30')][_0x89f3('0x46')](_0x36929b);})[_0x89f3('0x24')](function(_0x45111a){_0x284400['rows']=_0x45111a;return _0x284400;})[_0x89f3('0x24')](respondWithFilteredResult(_0x18dcfa,_0x36929b))[_0x89f3('0x47')](handleError(_0x18dcfa,null));};exports[_0x89f3('0x48')]=function(_0x616fe9,_0x285d30){var _0x4d960b={'raw':!![],'where':{'id':_0x616fe9[_0x89f3('0x49')]['id']}},_0x421fce={};_0x421fce[_0x89f3('0x34')]=_[_0x89f3('0x36')](db[_0x89f3('0x30')][_0x89f3('0x4a')]);_0x421fce[_0x89f3('0x35')]=_[_0x89f3('0x36')](_0x616fe9[_0x89f3('0x35')]);_0x421fce['filters']=_[_0x89f3('0x38')](_0x421fce[_0x89f3('0x34')],_0x421fce[_0x89f3('0x35')]);_0x4d960b[_0x89f3('0x39')]=_[_0x89f3('0x38')](_0x421fce[_0x89f3('0x34')],qs[_0x89f3('0x3a')](_0x616fe9[_0x89f3('0x35')][_0x89f3('0x3a')]));_0x4d960b[_0x89f3('0x39')]=_0x4d960b['attributes'][_0x89f3('0x3b')]?_0x4d960b['attributes']:_0x421fce[_0x89f3('0x34')];if(_0x616fe9[_0x89f3('0x35')]['includeAll']){_0x4d960b[_0x89f3('0x45')]=[{'all':!![]}];}_0x4d960b=_[_0x89f3('0x43')]({},_0x4d960b,_0x616fe9[_0x89f3('0x44')]);return db[_0x89f3('0x30')]['find'](_0x4d960b)[_0x89f3('0x24')](handleEntityNotFound(_0x285d30,null))['then'](respondWithResult(_0x285d30,null))[_0x89f3('0x47')](handleError(_0x285d30,null));};exports[_0x89f3('0x4b')]=function(_0x3ebebc,_0x410868){return db[_0x89f3('0x30')][_0x89f3('0x4b')](_0x3ebebc['body'],{})[_0x89f3('0x24')](function(_0xa8e8ae){var _0x3892cc=_0x3ebebc[_0x89f3('0x4c')][_0x89f3('0x26')]({'plain':!![]});if(!_0x3892cc)throw new Error(_0x89f3('0x4d'));if(_0x3892cc[_0x89f3('0x4e')]===_0x89f3('0x4c')){var _0x44b55e=_0xa8e8ae[_0x89f3('0x26')]({'plain':!![]});var _0x1e9791=_0x89f3('0x27');return db['UserProfileSection'][_0x89f3('0x4f')]({'where':{'name':_0x1e9791,'userProfileId':_0x3892cc[_0x89f3('0x50')]},'raw':!![]})[_0x89f3('0x24')](function(_0xe19e51){if(_0xe19e51&&_0xe19e51['autoAssociation']===0x0){return db[_0x89f3('0x28')][_0x89f3('0x4b')]({'name':_0x44b55e['name'],'resourceId':_0x44b55e['id'],'type':_0xe19e51[_0x89f3('0x2c')],'sectionId':_0xe19e51['id']},{})[_0x89f3('0x24')](function(){return _0xa8e8ae;});}else{return _0xa8e8ae;}})['catch'](function(_0xdde4db){logger['error'](_0x89f3('0x51'),_0xdde4db);throw _0xdde4db;});}return _0xa8e8ae;})[_0x89f3('0x24')](respondWithResult(_0x410868,0xc9))['catch'](handleError(_0x410868,null));};exports[_0x89f3('0x23')]=function(_0x427cae,_0x3b9e67){if(_0x427cae[_0x89f3('0x52')]['id']){delete _0x427cae['body']['id'];}return db[_0x89f3('0x30')][_0x89f3('0x4f')]({'where':{'id':_0x427cae[_0x89f3('0x49')]['id']}})[_0x89f3('0x24')](handleEntityNotFound(_0x3b9e67,null))['then'](saveUpdates(_0x427cae[_0x89f3('0x52')],null))[_0x89f3('0x24')](respondWithResult(_0x3b9e67,null))[_0x89f3('0x47')](handleError(_0x3b9e67,null));};exports['destroy']=function(_0xe4b9cc,_0x1be60a){return db[_0x89f3('0x30')][_0x89f3('0x4f')]({'where':{'id':_0xe4b9cc[_0x89f3('0x49')]['id']}})[_0x89f3('0x24')](handleEntityNotFound(_0x1be60a,null))[_0x89f3('0x24')](removeEntity(_0x1be60a,null))[_0x89f3('0x47')](handleError(_0x1be60a,null));};