| 
									
										
										
										
											2018-01-23 21:59:30 -05:00
										 |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const express = require('express'); | 
					
						
							|  |  |  | const router = express.Router(); | 
					
						
							|  |  |  | const auth = require('../../services/auth'); | 
					
						
							|  |  |  | const wrap = require('express-promise-wrap').wrap; | 
					
						
							| 
									
										
										
										
											2018-01-25 23:49:03 -05:00
										 |  |  | const attributes = require('../../services/attributes'); | 
					
						
							| 
									
										
										
										
											2018-01-26 23:40:48 -05:00
										 |  |  | const script = require('../../services/script'); | 
					
						
							| 
									
										
										
										
											2018-01-29 23:17:44 -05:00
										 |  |  | const Repository = require('../../services/repository'); | 
					
						
							| 
									
										
										
										
											2018-01-23 21:59:30 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-30 22:44:46 -05:00
										 |  |  | router.post('/exec', auth.checkApiAuth, wrap(async (req, res, next) => { | 
					
						
							|  |  |  |     const ret = await script.executeScript(req, req.body.script, req.body.params); | 
					
						
							| 
									
										
										
										
											2018-01-23 21:59:30 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-30 22:44:46 -05:00
										 |  |  |     res.send({ | 
					
						
							|  |  |  |         executionResult: ret | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2018-01-23 21:59:30 -05:00
										 |  |  | })); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-24 14:42:52 -05:00
										 |  |  | router.post('/job', auth.checkApiAuth, wrap(async (req, res, next) => { | 
					
						
							|  |  |  |     await script.setJob(req.body); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     res.send({}); | 
					
						
							|  |  |  | })); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-25 23:49:03 -05:00
										 |  |  | router.get('/startup', auth.checkApiAuth, wrap(async (req, res, next) => { | 
					
						
							| 
									
										
										
										
											2018-02-03 10:37:57 -05:00
										 |  |  |     const repository = new Repository(req); | 
					
						
							| 
									
										
										
										
											2018-03-04 14:21:11 -05:00
										 |  |  |     const notes = await attributes.getNotesWithAttribute(repository, "run", "frontend_startup"); | 
					
						
							| 
									
										
										
										
											2018-01-25 23:49:03 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     const scripts = []; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-04 14:21:11 -05:00
										 |  |  |     for (const note of notes) { | 
					
						
							|  |  |  |         const bundle = await script.getScriptBundle(note); | 
					
						
							| 
									
										
										
										
											2018-03-03 09:11:41 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-04 14:21:11 -05:00
										 |  |  |         scripts.push(bundle.script); | 
					
						
							| 
									
										
										
										
											2018-01-25 23:49:03 -05:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     res.send(scripts); | 
					
						
							|  |  |  | })); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-23 22:53:27 -05:00
										 |  |  | router.get('/subtree/:noteId', auth.checkApiAuth, wrap(async (req, res, next) => { | 
					
						
							| 
									
										
										
										
											2018-01-29 23:17:44 -05:00
										 |  |  |     const repository = new Repository(req); | 
					
						
							| 
									
										
										
										
											2018-03-03 09:11:41 -05:00
										 |  |  |     const note = await repository.getNote(req.params.noteId); | 
					
						
							| 
									
										
										
										
											2018-03-04 14:21:11 -05:00
										 |  |  |     const bundle = await script.getScriptBundle(note); | 
					
						
							| 
									
										
										
										
											2018-01-25 23:22:19 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-04 14:21:11 -05:00
										 |  |  |     res.send(bundle.script); | 
					
						
							| 
									
										
										
										
											2018-01-23 22:53:27 -05:00
										 |  |  | })); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-04 10:32:53 -05:00
										 |  |  | router.get('/render/:noteId', auth.checkApiAuth, wrap(async (req, res, next) => { | 
					
						
							|  |  |  |     const repository = new Repository(req); | 
					
						
							|  |  |  |     const note = await repository.getNote(req.params.noteId); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-04 21:05:14 -05:00
										 |  |  |     res.send(await script.getRenderScript(note)); | 
					
						
							| 
									
										
										
										
											2018-03-04 10:32:53 -05:00
										 |  |  | })); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-23 21:59:30 -05:00
										 |  |  | module.exports = router; |