Built motion from commit e8d9bd62.|2.6.25
[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 _0xe62d=['path','sox','ejs','squel','crypto','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','undefined','limit','set','apply','reject','save','update','then','Templates','UserProfileResource','destroy','error','stack','index','map','Template','rawAttributes','type','key','name','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','options','count','includeAll','catch','show','include','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util'];(function(_0x597b9d,_0x4f579d){var _0x10d101=function(_0x32c8fe){while(--_0x32c8fe){_0x597b9d['push'](_0x597b9d['shift']());}};_0x10d101(++_0x4f579d);}(_0xe62d,0xe3));var _0xde62=function(_0x158d09,_0x53f5a8){_0x158d09=_0x158d09-0x0;var _0x738525=_0xe62d[_0x158d09];return _0x738525;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xde62('0x0'));var jsonpatch=require(_0xde62('0x1'));var rp=require(_0xde62('0x2'));var moment=require(_0xde62('0x3'));var BPromise=require(_0xde62('0x4'));var Mustache=require(_0xde62('0x5'));var util=require(_0xde62('0x6'));var path=require(_0xde62('0x7'));var sox=require(_0xde62('0x8'));var csv=require('to-csv');var ejs=require(_0xde62('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xde62('0xa'));var crypto=require(_0xde62('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xde62('0xc'));var toCsv=require(_0xde62('0xd'));var querystring=require('querystring');var Papa=require(_0xde62('0xe'));var Redis=require(_0xde62('0xf'));var authService=require(_0xde62('0x10'));var qs=require(_0xde62('0x11'));var as=require(_0xde62('0x12'));var hardwareService=require(_0xde62('0x13'));var logger=require(_0xde62('0x14'))(_0xde62('0x15'));var utils=require(_0xde62('0x16'));var config=require(_0xde62('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x479239,_0x4af8b8){_0x4af8b8=_0x4af8b8||0xcc;return function(_0x2037bd){if(_0x2037bd){return _0x479239[_0xde62('0x18')](_0x4af8b8);}return _0x479239[_0xde62('0x19')](_0x4af8b8)[_0xde62('0x1a')]();};}function respondWithResult(_0x2549cb,_0x5f0d8f){_0x5f0d8f=_0x5f0d8f||0xc8;return function(_0x43c80c){if(_0x43c80c){return _0x2549cb[_0xde62('0x19')](_0x5f0d8f)[_0xde62('0x1b')](_0x43c80c);}};}function respondWithFilteredResult(_0x3a2d51,_0x28e777){return function(_0x5138ec){if(_0x5138ec){var _0x3b49bd=typeof _0x28e777[_0xde62('0x1c')]===_0xde62('0x1d')&&typeof _0x28e777[_0xde62('0x1e')]===_0xde62('0x1d');var _0x2613d3=_0x5138ec['count'];var _0x8ee50e=_0x3b49bd?0x0:_0x28e777[_0xde62('0x1c')];var _0x1782b2=_0x3b49bd?_0x5138ec['count']:_0x28e777['offset']+_0x28e777[_0xde62('0x1e')];var _0x3a4e99;if(_0x1782b2>=_0x2613d3){_0x1782b2=_0x2613d3;_0x3a4e99=0xc8;}else{_0x3a4e99=0xce;}_0x3a2d51['status'](_0x3a4e99);return _0x3a2d51[_0xde62('0x1f')]('Content-Range',_0x8ee50e+'-'+_0x1782b2+'/'+_0x2613d3)[_0xde62('0x1b')](_0x5138ec);}return null;};}function patchUpdates(_0xf7f978){return function(_0x45ed5e){try{jsonpatch[_0xde62('0x20')](_0x45ed5e,_0xf7f978,!![]);}catch(_0x88957a){return BPromise[_0xde62('0x21')](_0x88957a);}return _0x45ed5e[_0xde62('0x22')]();};}function saveUpdates(_0x4371ec,_0x3f39e9){return function(_0x235a88){if(_0x235a88){return _0x235a88[_0xde62('0x23')](_0x4371ec)[_0xde62('0x24')](function(_0x198f1f){return _0x198f1f;});}return null;};}function removeEntity(_0x18ae0f,_0x472c58){return function(_0x509111){if(_0x509111){return _0x509111['destroy']()['then'](function(){var _0x41700f=_0x509111['get']({'plain':!![]});var _0x1f12ed=_0xde62('0x25');return db[_0xde62('0x26')][_0xde62('0x27')]({'where':{'type':_0x1f12ed,'resourceId':_0x41700f['id']}})[_0xde62('0x24')](function(){return _0x509111;});})[_0xde62('0x24')](function(){_0x18ae0f[_0xde62('0x19')](0xcc)[_0xde62('0x1a')]();});}};}function handleEntityNotFound(_0x1ef1d7,_0x32d782){return function(_0x35ad65){if(!_0x35ad65){_0x1ef1d7[_0xde62('0x18')](0x194);}return _0x35ad65;};}function handleError(_0x22e5f9,_0x20a5de){_0x20a5de=_0x20a5de||0x1f4;return function(_0x536ca1){logger[_0xde62('0x28')](_0x536ca1[_0xde62('0x29')]);if(_0x536ca1['name']){delete _0x536ca1['name'];}_0x22e5f9['status'](_0x20a5de)['send'](_0x536ca1);};}exports[_0xde62('0x2a')]=function(_0x72610c,_0x2eeba){var _0x523393={},_0x435572={},_0x50f169={'count':0x0,'rows':[]};var _0x180a43=_[_0xde62('0x2b')](db[_0xde62('0x2c')][_0xde62('0x2d')],function(_0x44fac5){return{'name':_0x44fac5['fieldName'],'type':_0x44fac5[_0xde62('0x2e')][_0xde62('0x2f')]};});_0x435572['model']=_[_0xde62('0x2b')](_0x180a43,_0xde62('0x30'));_0x435572[_0xde62('0x31')]=_[_0xde62('0x32')](_0x72610c[_0xde62('0x31')]);_0x435572[_0xde62('0x33')]=_[_0xde62('0x34')](_0x435572[_0xde62('0x35')],_0x435572[_0xde62('0x31')]);_0x523393[_0xde62('0x36')]=_[_0xde62('0x34')](_0x435572[_0xde62('0x35')],qs[_0xde62('0x37')](_0x72610c[_0xde62('0x31')][_0xde62('0x37')]));_0x523393[_0xde62('0x36')]=_0x523393[_0xde62('0x36')][_0xde62('0x38')]?_0x523393[_0xde62('0x36')]:_0x435572[_0xde62('0x35')];if(!_0x72610c[_0xde62('0x31')]['hasOwnProperty'](_0xde62('0x39'))){_0x523393[_0xde62('0x1e')]=qs['limit'](_0x72610c['query'][_0xde62('0x1e')]);_0x523393[_0xde62('0x1c')]=qs[_0xde62('0x1c')](_0x72610c[_0xde62('0x31')]['offset']);}_0x523393[_0xde62('0x3a')]=qs[_0xde62('0x3b')](_0x72610c['query'][_0xde62('0x3b')]);_0x523393[_0xde62('0x3c')]=qs['filters'](_[_0xde62('0x3d')](_0x72610c[_0xde62('0x31')],_0x435572['filters']),_0x180a43);if(_0x72610c[_0xde62('0x31')][_0xde62('0x3e')]){_0x523393[_0xde62('0x3c')]=_[_0xde62('0x3f')](_0x523393[_0xde62('0x3c')],{'$or':_['map'](_0x180a43,function(_0x283bad){if(_0x283bad[_0xde62('0x2e')]!=='VIRTUAL'){var _0x31b9d9={};_0x31b9d9[_0x283bad[_0xde62('0x30')]]={'$like':'%'+_0x72610c[_0xde62('0x31')]['filter']+'%'};return _0x31b9d9;}})});}_0x523393=_[_0xde62('0x3f')]({},_0x523393,_0x72610c[_0xde62('0x40')]);var _0xb3fe00={'where':_0x523393[_0xde62('0x3c')]};return db[_0xde62('0x2c')][_0xde62('0x41')](_0xb3fe00)[_0xde62('0x24')](function(_0x2f3558){_0x50f169['count']=_0x2f3558;if(_0x72610c[_0xde62('0x31')][_0xde62('0x42')]){_0x523393['include']=[{'all':!![]}];}return db['Template']['findAll'](_0x523393);})[_0xde62('0x24')](function(_0x46de2c){_0x50f169['rows']=_0x46de2c;return _0x50f169;})[_0xde62('0x24')](respondWithFilteredResult(_0x2eeba,_0x523393))[_0xde62('0x43')](handleError(_0x2eeba,null));};exports[_0xde62('0x44')]=function(_0x3ec510,_0x13bf4b){var _0x35ae7f={'raw':!![],'where':{'id':_0x3ec510['params']['id']}},_0x4bb3ec={};_0x4bb3ec[_0xde62('0x35')]=_[_0xde62('0x32')](db[_0xde62('0x2c')][_0xde62('0x2d')]);_0x4bb3ec[_0xde62('0x31')]=_[_0xde62('0x32')](_0x3ec510['query']);_0x4bb3ec[_0xde62('0x33')]=_['intersection'](_0x4bb3ec['model'],_0x4bb3ec[_0xde62('0x31')]);_0x35ae7f[_0xde62('0x36')]=_[_0xde62('0x34')](_0x4bb3ec[_0xde62('0x35')],qs[_0xde62('0x37')](_0x3ec510[_0xde62('0x31')]['fields']));_0x35ae7f['attributes']=_0x35ae7f['attributes']['length']?_0x35ae7f[_0xde62('0x36')]:_0x4bb3ec['model'];if(_0x3ec510[_0xde62('0x31')][_0xde62('0x42')]){_0x35ae7f[_0xde62('0x45')]=[{'all':!![]}];}_0x35ae7f=_[_0xde62('0x3f')]({},_0x35ae7f,_0x3ec510[_0xde62('0x40')]);return db[_0xde62('0x2c')][_0xde62('0x46')](_0x35ae7f)[_0xde62('0x24')](handleEntityNotFound(_0x13bf4b,null))[_0xde62('0x24')](respondWithResult(_0x13bf4b,null))[_0xde62('0x43')](handleError(_0x13bf4b,null));};exports[_0xde62('0x47')]=function(_0x5d5d4f,_0x1791cf){return db['Template'][_0xde62('0x47')](_0x5d5d4f[_0xde62('0x48')],{})[_0xde62('0x24')](function(_0x162fed){var _0x16e584=_0x5d5d4f['user']['get']({'plain':!![]});if(!_0x16e584)throw new Error(_0xde62('0x49'));if(_0x16e584[_0xde62('0x4a')]==='user'){var _0x12dcad=_0x162fed['get']({'plain':!![]});var _0x2e4d34='Templates';return db['UserProfileSection'][_0xde62('0x46')]({'where':{'name':_0x2e4d34,'userProfileId':_0x16e584[_0xde62('0x4b')]},'raw':!![]})[_0xde62('0x24')](function(_0x4f34d3){if(_0x4f34d3&&_0x4f34d3['autoAssociation']===0x0){return db[_0xde62('0x26')][_0xde62('0x47')]({'name':_0x12dcad[_0xde62('0x30')],'resourceId':_0x12dcad['id'],'type':_0x4f34d3['name'],'sectionId':_0x4f34d3['id']},{})[_0xde62('0x24')](function(){return _0x162fed;});}else{return _0x162fed;}})[_0xde62('0x43')](function(_0x4e986c){logger[_0xde62('0x28')](_0xde62('0x4c'),_0x4e986c);throw _0x4e986c;});}return _0x162fed;})['then'](respondWithResult(_0x1791cf,0xc9))['catch'](handleError(_0x1791cf,null));};exports['update']=function(_0x4b6fac,_0x40df6e){if(_0x4b6fac['body']['id']){delete _0x4b6fac['body']['id'];}return db[_0xde62('0x2c')][_0xde62('0x46')]({'where':{'id':_0x4b6fac['params']['id']}})[_0xde62('0x24')](handleEntityNotFound(_0x40df6e,null))[_0xde62('0x24')](saveUpdates(_0x4b6fac['body'],null))[_0xde62('0x24')](respondWithResult(_0x40df6e,null))['catch'](handleError(_0x40df6e,null));};exports[_0xde62('0x27')]=function(_0x5bcc23,_0x51db50){return db[_0xde62('0x2c')][_0xde62('0x46')]({'where':{'id':_0x5bcc23[_0xde62('0x4d')]['id']}})[_0xde62('0x24')](handleEntityNotFound(_0x51db50,null))[_0xde62('0x24')](removeEntity(_0x51db50,null))['catch'](handleError(_0x51db50,null));};