From a1c80c70cb9ee7921377b87a76364948cf99cecf Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Sat, 3 Feb 2018 17:20:58 -0700 Subject: [PATCH] Grab user data from web server --- webclient/src/App.js | 15 +++++++++----- webclient/src/Category.js | 4 ++-- webclient/src/Tool.js | 6 +++--- webserver/server.js | 43 +++++++++++++++++++++++++-------------- 4 files changed, 43 insertions(+), 25 deletions(-) diff --git a/webclient/src/App.js b/webclient/src/App.js index f60b8be..dfbcdc7 100644 --- a/webclient/src/App.js +++ b/webclient/src/App.js @@ -10,18 +10,23 @@ class App extends Component { super(); this.state = { + user: null, toolData: null, }; } componentDidMount() { - fetch('http://localhost:8080/api/client') + fetch('http://localhost:8080/api/tooldata') .then(response => response.json()) .then(data => this.setState({ toolData: data })); + fetch('http://localhost:8080/api/user') + .then(response => response.json()) + .then(data => this.setState({ user: data })); } render() { const toolData = this.state.toolData; + const user = this.state.user; return (
@@ -41,18 +46,18 @@ class App extends Component {
- {toolData ? + {toolData && user ?
- + } /> - + } /> - + } />
: diff --git a/webclient/src/Category.js b/webclient/src/Category.js index 19460b1..ac2fb50 100644 --- a/webclient/src/Category.js +++ b/webclient/src/Category.js @@ -5,11 +5,11 @@ import { Link } from 'react-router-dom'; class Category extends Component { render() { const data = this.props.data; - const user = data.user; + const user = this.props.user; const match = this.props.match; const category = data.categories.find((x) => - x.slug == match.params.category + x.slug === match.params.category ); return ( diff --git a/webclient/src/Tool.js b/webclient/src/Tool.js index 144dc95..8a62f53 100644 --- a/webclient/src/Tool.js +++ b/webclient/src/Tool.js @@ -5,15 +5,15 @@ import { Link } from 'react-router-dom'; class Tool extends Component { render() { const data = this.props.data; - const user = data.user; + const user = this.props.user; const match = this.props.match; const category = data.categories.find((x) => - x.slug == match.params.category + x.slug === match.params.category ); const tool = category.tools.find((x) => - x.id == match.params.id + x.id.toString() === match.params.id ); const approved = user.authorizedTools.includes(tool.id); diff --git a/webserver/server.js b/webserver/server.js index 5be6bcb..050d88e 100644 --- a/webserver/server.js +++ b/webserver/server.js @@ -1,7 +1,7 @@ const express = require('express'); const app = express(); -const fakeData = { +const toolData = { categories: [ { name: 'Woodshop', @@ -48,17 +48,23 @@ const fakeData = { ], }, ], - user: { - authorizedTools: [1, 2], - }, }; -const tools = { - '2C3AE843A15F': { - relayOn: false, - ledOn: true, - date: '2018-02-01', - }, +const user = { + username: "protospace", + name: "Protospace User", + authorizedTools: [1, 2], +} + +const lockoutData = { + lockouts: [ + { + mac: '2C3AE843A15F', + relayOn: false, + ledOn: true, + date: '2018-02-01', + }, + ], }; const server = app.listen(8080, function () { @@ -73,17 +79,24 @@ app.use(function(req, res, next) { app.use('/', express.static('dist')); -app.get('/api/client', function (req, res) { - console.log('Request for client data'); +app.get('/api/tooldata', function (req, res) { + console.log('Request for tool data'); res.setHeader('Content-Type', 'application/json'); - res.send(fakeData); + res.send(toolData); }); -app.get('/api/tool/:mac', function (req, res) { +app.get('/api/user', function (req, res) { + console.log('Request for user data'); + + res.setHeader('Content-Type', 'application/json'); + res.send(user); +}); + +app.get('/api/lockout/:mac', function (req, res) { const mac = req.params.mac; - const data = tools[mac]; + const data = lockoutData.lockouts.find(x => x.mac === mac); if (!data) { res.send(404); }