1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- var debug = require('debug')('ylt:server');
- var runsQueue = require('../datastores/runsQueue');
- var runsDatastore = require('../datastores/runsDatastore');
- function ApiController(app) {
- 'use strict';
- // Retrieve the list of all runs
- /*app.get('/runs', function(req, res) {
- // NOT YET
- });*/
- // Create a new run
- app.post('/runs', function(req, res) {
- // Grab the test parameters
- var run = {
- // Generate a random run ID
- _id: (Date.now()*1000 + Math.round(Math.random()*1000)).toString(36),
- params: {
- url: req.body.url,
- waitForResponse: req.body.waitForResponse || true
- }
- };
- // Add test to the testQueue
- debug('Adding test %s to the queue', run._id);
- var queuing = runsQueue.push(run._id);
-
- // Save the run to the datastore
- var position = runsQueue.getPosition(run._id);
- run.status = {
- statusCode: (position === 0) ? STATUS_RUNNING : STATUS_AWAITING,
- position: position
- };
- runsDatastore.add(run);
- // Listening for position updates
- queuing.progress(function(position) {
- var savedRun = runsDatastore.get(run._id);
- savedRun.status = {
- statusCode: STATUS_AWAITING,
- position: position
- };
- runsDatastore.update(savedRun);
- });
- queuing.then(function() {
-
- });
- // The user doesn't not want to wait for the response
- if (!params.waitForResponse) {
- // Sending just the test id
- res.setHeader('Content-Type', 'application/javascript');
- res.send(JSON.stringify({
- testId: testId
- }));
- }
- });
- // Retrive one run by id
- app.get('/run/:id', function(req, res) {
- });
- // Delete one run by id
- /*app.delete('/run/:id', function(req, res) {
- // NOT YET
- });*/
- var STATUS_AWAITING = 'awaiting';
- var STATUS_RUNNING = 'running';
- var STATUS_DONE = 'done';
- var STATUS_FAILED = 'failed';
- }
- module.exports = ApiController;
|