• Jump To … +
    Apuesta.js Gruntfile.js Porra.js index.js porredis.js prueba-assert.js prueba.js redis.js usa-db.js
  • index.js

  • ¶
    "use strict";
    
    var express = require('express');
    var app = express();
    
    var apuesta = require("./Apuesta.js");
    var porra = require("./Porra.js");
    
    var porras = new Object;
  • ¶

    Establece el IP y el puerto dependiendo del PaaS que sea

    var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '0.0.0.0'; 
    app.set('port', (process.env.PORT || process.env.OPENSHIFT_NODEJS_PORT || 5000));
    app.use(express.static(__dirname + '/public'));
  • ¶

    Crea una porra

    app.put('/porra/:competition/:year/:local/:visitante', function( req, response ) {
        var nueva_porra = new porra.Porra(req.params.local,req.params.visitante,
    				      req.params.competition, req.params.year );
        porras[nueva_porra.ID] = nueva_porra;
        response.status(200).send( nueva_porra );
    });
    
    
    app.put('/apuesta/:menda/:competition/:year/:local/:goles_local/:visitante/:goles_visitante', function( req, response ) {
        var esta_porra = new porra.Porra(req.params.local,req.params.visitante,
    				      req.params.competition, req.params.year );
        if ( !porras[esta_porra.ID] ) {
    	response.status(404).send("No existe esa porra");
        } else {
    	var esta_apuesta = 
    	    new apuesta.Apuesta( porras[esta_porra.ID], req.params.menda, 
    				 req.params.goles_local, 
    				 req.params.goles_visitante );
    	response.status(200).send( esta_apuesta );
        }
        
    });
  • ¶

    Pone el resultado de la porra

    app.post('/porra/resultado/:competition/:year/:local/:goles_local/:visitante/:goles_visitante', function( req, response ) {
        var esta_porra = new porra.Porra(req.params.local,req.params.visitante,
    				     req.params.competition, req.params.year );
        if ( !porras[esta_porra.ID] ) {
    	response.status(404).send("No existe esa porra");
        } else {
    	porras[esta_porra.ID].resultado = req.params.goles_local + "-" + req.params.goles_visitante;
    	response.status(200).send( porras[esta_porra.ID] );
        }
        
    });
  • ¶

    Baja todas las porras que haya en un momento determinado

    app.get('/porras', function(request, response) {
        response.send( porras );
    });
  • ¶

    Baja todas las apuestas de un partido determinado

    app.get('/porra/:ID', function(request, response) {
        var esta_porra_ID = request.params.ID;
        if ( !porras[esta_porra_ID] ) {
    	response.status(404).send("No existe esa porra");
        } else {
    	response.status(200).send( porras[esta_porra_ID] );
        }
    });
  • ¶

    Recupera el ganador o ganadores de la porra

    app.get('/porra/ganador/:competition/:year/:local/:visitante/', function( req, response ) {
        var esta_porra = new porra.Porra(req.params.local,req.params.visitante,
    				     req.params.competition, req.params.year );
        if ( !porras[esta_porra.ID] ) {
    	response.status(404).send("No existe esa porra");
        } else {
    	if ( !porras[esta_porra.ID].resultado ) {
    	    response.status(404).send("No hay resultado para ese partido");
    	} else {
    	    var este_resultado = porras[esta_porra.ID].resultado;
    	    response.status(200).send( porras[esta_porra.ID].apuestas_para( este_resultado ) );
    	}
        }
        
    });
  • ¶

    Escucha en un puerto determinado.

    app.listen(app.get('port'), server_ip_address, function() {
      console.log("Node app is running at " + server_ip_address + ":" + app.get('port'));
    });
  • ¶

    Exporta la variable para poder hacer tests

    module.exports = app;