Update userData to sql

This commit is contained in:
Nikola Petrov
2024-07-16 19:04:16 +02:00
parent 298bfcaabb
commit 71a2245ce2
11 changed files with 205 additions and 113 deletions

View File

@@ -1,4 +1,5 @@
import { type Request, type Response } from "express";
import UserModel, { values } from '../models/userModel';
import { GameModel } from '../models/mediaModel';
export default {
@@ -18,7 +19,13 @@ export default {
create: async function (req: Request, res: Response) {
var gameCode = req.body.code;
const userFound = req.user;
const twitch_client_id = await UserModel.getValue(values.twitch_client_id);
const twitch_client_secret = await UserModel.getValue(values.twitch_client_secret);
if (!twitch_client_id || !twitch_client_secret) {
return res.status(500).json({ message: 'Error when creating game' });
}
try {
const gameFound = await GameModel.findOne({ code: gameCode });
@@ -26,13 +33,13 @@ export default {
return res.status(409).json({ message: 'Game already exists' });
}
const uri = "https://id.twitch.tv/oauth2/token?client_id=" + userFound.twitch_client_id + "&client_secret=" + userFound.twitch_client_secret + "&grant_type=client_credentials";
const uri = "https://id.twitch.tv/oauth2/token?client_id=" + twitch_client_id + "&client_secret=" + twitch_client_secret + "&grant_type=client_credentials";
var response = await fetch(uri, { method: 'POST' });
const mData = await response.json();
const mheaders = {
const mheaders: HeadersInit = {
'Accept': 'application/json',
'Client-ID': userFound.twitch_client_id,
'Client-ID': twitch_client_id,
'Authorization': 'Bearer ' + mData.access_token
}

View File

@@ -1,4 +1,5 @@
import { type Request, type Response } from "express";
import UserModel, { values } from '../models/userModel';
import { MovieModel, SeriesModel } from '../models/mediaModel';
/**
@@ -31,7 +32,13 @@ export default {
*/
create: async function (req: Request, res: Response) {
const mediaCode = req.body.code;
const userFound = req.user;
const omdb_key = await UserModel.getValue(values.omdb_key);
if (!omdb_key) {
return res.status(500).json({ message: 'Error when creating media' });
}
try {
const MediaModel = req.baseUrl.includes('movies') ? MovieModel : SeriesModel;
const mediaFound = await MediaModel.findOne({ code: mediaCode });
@@ -39,7 +46,7 @@ export default {
return res.status(409).json({ message: 'Media already exists' });
}
const uri = `http://www.omdbapi.com/?i=${mediaCode}&apikey=${userFound.omdb_key}`;
const uri = `http://www.omdbapi.com/?i=${mediaCode}&apikey=${omdb_key}`;
const mJson = await fetch(uri);
const mData = await mJson.json();

View File

@@ -1,49 +1,50 @@
import { type Request, type Response } from "express";
import UserModel from '../models/userModel';
import UserModel, { values } from '../models/userModel';
export default {
create: async function (req: Request, res: Response) {
const pass = req.body.pass;
try {
const userFound = await UserModel.findOne({ pass: pass });
if (userFound) {
return res.status(409).json({ message: 'User already exists' });
}
const user = new UserModel({
pass,
omdb_key: req.body.omdb_key,
twitch_client_id: req.body.twitch_client_id,
twitch_client_secret: req.body.twitch_client_secret,
mac_address: req.body.mac_address,
});
await user.save();
return res.redirect('/list');
}
catch (err) {
return res.status(500).json({ message: 'Error when creating user', error: err });
}
render: async function (req: Request, res: Response) {
res.render('user', { title: 'Register', keys: UserModel.namesOfValues });
},
remove: async function (req: Request, res: Response) {
try {
await UserModel.deleteMany();
return res.status(204).json({ message: 'User deleted' });
} catch (err) {
return res.status(500).json({ message: 'Error when deleting the user', error: err });
create: async function (req: Request, res: Response) {
const reqPassword: string = req.body.reqPassword;
if (!reqPassword) return res.render('user', { title: 'Register', keys: UserModel.namesOfValues });
const password = await UserModel.getValue(values.pass);
// if no password in db save reqPassword
if (!password) {
const affectedRows = await UserModel.updateValue("pass", reqPassword);
if (affectedRows > 0) {
return res.redirect('/list');
}
return res.render('user', { title: 'Register', keys: UserModel.namesOfValues });
}
// check if passwords equal
if (password != reqPassword) {
return res.render('user', { title: 'Register', keys: UserModel.namesOfValues });
}
// update
const name: string = req.body.name;
const value: string = req.body.value;
if (!name || !value) {
return res.render('user', { title: 'Register', keys: UserModel.namesOfValues });
}
const affectedRows = await UserModel.updateValue(name, value);
if (affectedRows == 0) {
return res.render('user', { title: 'Register', keys: UserModel.namesOfValues });
}
return res.redirect('/list');
},
get: async function (req: Request, res: Response) {
try {
const usersFound = await UserModel.find();
return res.status(200).json(usersFound);
} catch (err) {
return res.status(500).json({ message: 'Error when getting the user', error: err });
}
const usersFound = await UserModel.getAll();
return res.status(200).json(usersFound);
},
};