summaryrefslogtreecommitdiffstats
path: root/backend/routes.js
diff options
context:
space:
mode:
authorJan Tuomi <jan.tuomi@eficode.com>2020-02-01 16:33:56 +0200
committerJan Tuomi <jan.tuomi@eficode.com>2020-02-01 16:33:56 +0200
commita5ae2653d8ccdaf00270c0c8c8a30b88d7955114 (patch)
treebd265901dbda512fb1f6d717beb545234468d7ec /backend/routes.js
parentfbf108595a00a7c9db5984158e4b02cc345b68d1 (diff)
Do stuff
Diffstat (limited to 'backend/routes.js')
-rw-r--r--backend/routes.js114
1 files changed, 0 insertions, 114 deletions
diff --git a/backend/routes.js b/backend/routes.js
deleted file mode 100644
index 83748fb..0000000
--- a/backend/routes.js
+++ /dev/null
@@ -1,114 +0,0 @@
-const express = require('express');
-const router = express.Router();
-const sha512 = require('js-sha512');
-const shortid = require('shortid');
-
-const salt = 'suola';
-
-const low = require('lowdb');
-const FileSync = require('lowdb/adapters/FileSync');
-
-const adapter = new FileSync('db.json');
-const db = low(adapter);
-
-db.defaults({ users: [] }).write();
-
-router.get('/', (req, res) => {
- res.json({
- message: 'Backend API',
- });
-});
-
-router.post('/register', (req, res) => {
- const { username, password } = req.body;
- if (!username || !password) {
- res.status(400);
- return res.json({
- error: 'Username or password missing.',
- });
- }
-
- const user = db.get('users').find({ username }).value();
- if (user) {
- res.status(400);
- return res.json({
- error: 'Username already taken.',
- });
- }
-
- const pwHash = sha512(salt + password);
- db.get('users').push({ username, password: pwHash }).write();
- return res.json({
- username,
- });
-});
-
-router.post('/login', (req, res) => {
- const { username, password } = req.body;
- if (!username || !password) {
- res.status(400);
- return res.json({
- error: 'Username or password missing.',
- });
- }
-
- const userObj = db.get('users').find({ username });
- const user = userObj.value();
-
- if (user) {
- const sessionId = shortid.generate();
- userObj.assign({ sessionId }).write();
- res.set('Set-Cookie', `sessionId=${sessionId}`);
- return res.json({
- username,
- });
- }
-
- res.status(403);
- res.json({
- error: 'Wrong username or password',
- });
-});
-
-router.post('/logout', (req, res) => {
- const cookies = req.cookies;
- const { sessionId } = cookies;
-
- const userObj = db.get('users').find({ sessionId });
- if (userObj) {
- userObj.assign({ sessionId: null }).write();
- }
- res.status(204);
- res.set('Set-Cookie', 'sessionId=deleted; expires=Thu, 01 Jan 1970 00:00:00 GMT');
- res.send();
-});
-
-router.get('/user', (req, res) => {
- const cookies = req.cookies;
- const { sessionId } = cookies;
-
- if (!sessionId) {
- res.status(403);
- return res.json({
- message: 'Log in first!',
- });
- }
-
- const userObj = db.get('users').find({ sessionId });
- const user = userObj.value();
-
- if (userObj) {
- return res.json({
- message: `Hello user ${user.username}!`,
- username: user.username,
- });
- }
-
- res.status(400);
- return res.json({
- message: 'Invalid session token.',
- sessionId,
- });
-});
-
-module.exports = router;