andreacw5/ALIRWebApi

View on GitHub
api/alirdb/vehicle.js

Summary

Maintainability
B
5 hrs
Test Coverage
const fs = require('file-system');
const jsonQuery = require('json-query');

const vehiclesJson = '/home/andreacw/webapi/today/vehicles.json';
const fileEncrypt = 'utf8';

module.exports = function (app) {

    /**
     *   GET Vehicle lenght
     *   @return: Array di oggetti
     *   @example: http://192.168.30.77:8190/vehicles/lenght --> [{56}]
     */

    app.get('/vehicles/lenght/', (req, res, next) => {

        fs.readFile(vehiclesJson, fileEncrypt, function(err, data) {
            if (err) {

                res.send({500: 'Errore durante la richiesta'});

            } else {

                // Parse del JSON locale
                let obj = JSON.parse(data);
                // Regex di ricerca per nome
                let result = jsonQuery('rows[**][]', {data: obj}).value;
                // Lancio il risultato

                let lenght = result.length;

                res.send({size: lenght});

            }
        });
    });

    /**
     *   GET Vehicles by pid
     *   @return: Array di oggetti
     *   @example: http://192.168.30.77:8190/vehicles/76561197960737527 --> [{pid: '76561197960737527', ....}]
     */

    app.get('/vehicles/:pid', (req, res, next) => {

        // Prendo il pid dalla richiesta
        const pid = req.params.pid;

        fs.readFile(vehiclesJson, fileEncrypt, function(err, data) {
            if (err) {

                res.send({500: 'Errore durante la richiesta'});

            } else {

                // Parse del JSON locale
                let obj = JSON.parse(data);
                // Regex di ricerca per nome
                let result = jsonQuery('rows[**][*pid~/' + pid + '/i]', {data: obj, allowRegexp: true}).value;
                // Lancio il risultato

                if (err) {

                    res.send({500: 'Errore'});

                }

                if (result.length > 0) {

                    res.send(result);

                } else {

                    res.send({404: 'Nessun veicolo trovato'});

                }
            }
        });
    });

};