Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*jslint node: true */
- /*jslint esversion: 6*/
- /*jslint eqeqeq: true */
- var express = require('express');
- var app = express();
- var fs = require("fs");
- var expressWs = require('express-ws')(app);
- var http = require('http');
- var simulation = require('./simulation.js');
- var bodyParser = require('body-parser');
- var jwt = require('jsonwebtoken');
- var cors = require('cors');
- var uuid = require('uuid');
- app.use(bodyParser.urlencoded({extended: true}));
- app.use(bodyParser.json());
- app.use(cors());
- // Overview
- app.get('/overview', function (req, res) {
- console.log("Get list of devices");
- })
- // Login check
- app.post('/login', function (req, res) {
- console.log("Check login data");
- var content= readUser(function(content){});
- console.log(content);
- console.log(req.body.username);
- // if(req.body.username == && req.body.password==){
- // res.status(400).send("Wrong username/password!");
- // }else {
- // res.status(200).json({});
- // }
- })
- // Options page- check old password and save new
- app.post('/options', function (req,res) {
- // if(!req.body.password){
- // res.status(200)
- //
- // }else {
- // res.send()
- // }
- })
- //TODO Implementieren Sie hier Ihre REST-Schnittstelle
- /* Ermöglichen Sie wie in der Angabe beschrieben folgende Funktionen:
- * Abrufen aller Geräte als Liste
- * Hinzufügen eines neuen Gerätes
- * Löschen eines vorhandenen Gerätes
- * Bearbeiten eines vorhandenen Gerätes (Verändern des Gerätezustandes und Anpassen des Anzeigenamens)
- * Log-in und Log-out des Benutzers
- * Ändern des Passworts
- * Abrufen des Serverstatus (Startdatum, fehlgeschlagene Log-ins).
- *
- * BITTE BEACHTEN!
- * Verwenden Sie dabei passende Bezeichnungen für die einzelnen Funktionen.
- * Achten Sie bei Ihrer Implementierung auch darauf, dass der Zugriff nur nach einem erfolgreichem Log-In erlaubt sein soll.
- * Vergessen Sie auch nicht, dass jeder Client mit aktiver Verbindung über alle Aktionen via Websocket zu informieren ist.
- * Bei der Anlage neuer Geräte wird eine neue ID benötigt. Verwenden Sie dafür eine uuid (https://www.npmjs.com/package/uuid, Bibliothek ist bereits eingebunden).
- */
- app.post("/updateCurrent", function (req, res) {
- "use strict";
- //TODO Vervollständigen Sie diese Funktion, welche den aktuellen Wert eines Gerätes ändern soll
- /*
- * Damit die Daten korrekt in die Simulation übernommen werden können, verwenden Sie bitte die nachfolgende Funktion.
- * simulation.updatedDeviceValue(device, control_unit, Number(new_value));
- * Diese Funktion verändert gleichzeitig auch den aktuellen Wert des Gerätes, Sie müssen diese daher nur mit den korrekten Werten aufrufen.
- */
- });
- function readUser(callback) {
- "use strict";
- fs.readFile('resources/login.config', 'utf8', function (err,data) {
- if (err) {
- return console.log(err);
- }
- // console.log(data);
- return data;
- });
- }
- function readDevices() {
- "use strict";
- fs.readFile('resources/devices.json', 'utf8', function (err,data) {
- if (err) {
- return console.log(err);
- }
- // console.log(data);
- return data;
- });
- }
- var server = app.listen(8081, function () {
- "use strict";
- //readUser();
- //readDevices();
- var host = server.address().address;
- var port = server.address().port;
- console.log("Big Smart Home Server listening at http://%s:%s", host, port);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement