Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Created by guusv on 2/8/2017.
- */
- // fmon version 2 - (Mains Frequency Monitoring API)
- var express = require('express');
- var router = express.Router();
- var jwt = require('jwt-simple');
- var path = require('path');
- var mysql = require('mysql');
- //
- // Alle endpoint behalve /apiv2/login require X-Access-Token
- //
- // Ook kan (weg laten van newRegExp):
- // router.all(/[^(\/login)]/, function (req, res, next)
- // Let op ! zonder ' (quotes)
- //
- router.all( new RegExp("[^(\/login)]"), function (req, res, next) {
- // Zonder reguliere expressie een if gebruiken om router eruit
- // te filteren:
- // if( req.url.indexOf('/login') > -1) {
- // return next();
- // }
- // For all the others
- var token = (req.header('X-Access-Token')) || '';
- if (token) {
- try {
- var decoded = jwt.decode(token, req.app.get('secretkey'));
- var connection = mysql.createConnection(
- {
- host : 'localhost',
- user : 'root',
- password : 'root123',
- database : 'meetopstelling',
- }
- );
- connection.connect();
- var usernameCheck = 'SELECT * FROM gebruiker WHERE gebruikersnaam = ?';
- connection.query(usernameCheck,[decoded.iss], function(err, rows, fields) {
- if (err) throw err;
- if (rows.length > -1){
- req.app.set("userid", decoded.iss);
- console.log("Userid: " + req.app.get('userid'));
- return next();
- } else {
- res.status(401);
- res.json({
- "status": 401, "message": "unknown userid, bye"
- });
- }
- });
- connection.end();
- }
- catch (err) {
- console.log("Authorization failed: " + err);
- res.status(401);
- res.json({
- "status": 401, "message": "unknown userid, bye"
- });
- }
- }
- });
- // Restfull login
- router.post('/login', function (req, res) {
- var username = req.body.username || '';
- var password = req.body.password || '';
- // Check for empy body
- if (username == '' || password == '') {
- res.status(401);
- res.json({
- "status": 401,
- "message": "EMPTY FIELDS!"
- });
- return;
- }
- var connection = mysql.createConnection(
- {
- host : 'localhost',
- user : 'root',
- password : 'root123',
- database : 'meetopstelling',
- }
- );
- connection.connect();
- var loginQuery = 'SELECT * FROM gebruiker WHERE gebruikersnaam = ? && wachtwoord = ?';
- // do db lookup
- connection.query(loginQuery,[username, password], function(err, rows, fields) {
- if (err) throw err;
- // Check for valid user/passwd combo
- if (rows.length > 0 ) {
- var now = new Date();
- var expires = now.setHours(now.getDay() + 5);
- var token = jwt.encode({
- iss: username,
- exp: expires
- }, req.app.get('secretkey'));
- res.status(200);
- res.json({
- token: token,
- expires: expires,
- user: username
- });
- }
- else {
- res.status(401);
- res.json({
- "status": 401,
- "message": "INVALID USERNAME OR PASSWORD!"
- });
- }
- });
- connection.end();
- });
- router.post('/test', function (req, res) {
- var data = req.body.data || '';
- console.log(data);
- var connection = mysql.createConnection(
- {
- host : 'localhost',
- user : 'root',
- password : 'root123',
- database : 'meetopstelling',
- }
- );
- connection.connect();
- var addQuery = 'INSERT INTO test(datastring) values(?)';
- connection.query(addQuery,[data], function(err, rows, fields) {
- if (err) throw err;
- res.json({
- "status": 200,
- "message": "SUCCEEDED!"
- });
- });
- });
- router.post('/gegevens', function (req, res) {
- var username = req.app.get('userid');
- var tijd = new Date();
- var waarde = req.body.waarde || '';
- var beschrijving = req.body.beschrijving || '';
- var locatieLong = req.body.locatieLong || '';
- var locatieLat = req.body.locatieLat || '';
- var connection = mysql.createConnection(
- {
- host : 'localhost',
- user : 'root',
- password : 'root123',
- database : 'meetopstelling',
- }
- );
- connection.connect();
- var usernameQuery = 'select gebruiker.id from gebruiker WHERE gebruiker.gebruikersnaam = ?';
- var postDataQuery = 'INSERT INTO meetopstelling values(3,?,?,?,?,?,?)';
- connection.query(usernameQuery,[username], function(err, rows, fields) {
- if (err) throw err;
- if (rows.length > 0){
- var id = rows[0].id;
- console.log(id);
- connection.query(postDataQuery,[tijd, waarde, locatieLong, locatieLat, beschrijving, id], function(err, rows, fields) {
- if (err) throw err;
- res.json({
- "status": 200,
- "message": "SUCCEEDED!"
- });
- });
- } else {
- res.json({
- "status": 400,
- "message": "FAILED!"
- });
- }
- });
- });
- router.get('/freq', function (req, res) {
- var username = req.app.get('userid');
- var results = [];
- var connection = mysql.createConnection(
- {
- host : 'localhost',
- user : 'root',
- password : 'root123',
- database : 'meetopstelling',
- }
- );
- connection.connect();
- var meetingRows = 'SELECT meetopstelling.tijd, meetopstelling.waarde, meetopstelling.beschrijving, meetopstelling.locatieLat, meetopstelling.locatieLong, gebruiker.gebruikersnaam FROM meetopstelling INNER JOIN gebruiker ON meetopstelling.gebruiker_id=gebruiker.id WHERE gebruiker.gebruikersnaam = ?';
- // do db lookup
- connection.query(meetingRows,[username], function(err, rows, fields) {
- if (err) throw err;
- for (var i in rows) {
- results.push(rows[i]);
- }
- res.json({
- "status": 200,
- "results": results
- });
- });
- connection.end();
- });
- // Fall back, display some info
- router.get('/', function (req, res) {
- res.status(200);
- res.json({
- "description": "API Check"
- });
- });
- module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement