From cce06e138cfe7ff9d1406b1dbc3d2cc68f4eb496 Mon Sep 17 00:00:00 2001 From: gemechis Date: Fri, 26 Jul 2024 18:28:41 +0200 Subject: [PATCH] final --- .env | 8 ++++---- README.md | 10 ++++++---- controllers/recipe.js | 30 +++++++++++++++++++++++++++--- controllers/user.js | 2 +- models/recipe.js | 2 +- routes/recipe.js | 6 ++++++ routes/user.js | 6 +++++- 7 files changed, 50 insertions(+), 14 deletions(-) diff --git a/.env b/.env index 4ee2f7d..e656a80 100644 --- a/.env +++ b/.env @@ -1,6 +1,6 @@ PORT=5002 TOKEN_ACCESS_SECRET= -DB_NAME= -DB_USER= -DB_PASSWORD= -DB_HOST= +DB_NAME="Projectdb" +DB_USER="debian-sys-maint" +DB_PASSWORD="LMGN8wllMjK8DPkK" +DB_HOST="localhost" diff --git a/README.md b/README.md index bf7bc34..5d4cc60 100644 --- a/README.md +++ b/README.md @@ -65,10 +65,11 @@ Project/ ``` 4. **Create a database:** - ```sql - CREATE DATABASE your_database_name; - ``` - + + ```sql + CREATE DATABASE your_database_name; + ``` + 5. **Run the application:** ```bash @@ -97,6 +98,7 @@ DB_HOST=your_database_host - Registers a new user. - **POST /login** + - Logs in an existing user. - **POST /logout** diff --git a/controllers/recipe.js b/controllers/recipe.js index 0d945d0..aac00d6 100644 --- a/controllers/recipe.js +++ b/controllers/recipe.js @@ -1,11 +1,35 @@ import query from '../config/db.js'; const recipeControllers = { - getAllRecipes: async (req, res) => {}, + getAllRecipes: async (req, res) => { + try { + const { output } = await query('SELECT * FROM recipes'); + res.status(200).json(output); + } catch (error) { + res.status(500).json({error: 'Failed to retrieve recipes'}); + } + }, getOneRecipe: async (req, res) => {}, - postRecipe: async (req, res) => {}, + postRecipe: async (req, res) => { + const { name, description } = req.body; + const newRecipe = await query( + 'INSERT INTO recipes (name, description) VALUES (?, ?)', + [name, description] + ); + res.json({ id: newRecipe.insertId, name, description }); + }, updateRecipe: async (req, res) => {}, - deleteRecipe: async (req, res) => {}, + deleteRecipe: async (req, res) => { + try { + const [result] = await query('DELETE FROM recipes WHERE id = ?', [id]); + + if (result.affectedRows === 0) { + const error = new Error(`A recipe with the id of ${id} was not found`); + error.status = 404; + return next(error); + } + + }, }; export default recipeControllers; diff --git a/controllers/user.js b/controllers/user.js index b0fe546..1c56750 100644 --- a/controllers/user.js +++ b/controllers/user.js @@ -12,7 +12,7 @@ const userControllers = { login: async (req, res) => {}, - logout: async (req, res) => {}, + logout: async (req, res) => {} }; export default userControllers; diff --git a/models/recipe.js b/models/recipe.js index 1db0496..1fa3193 100644 --- a/models/recipe.js +++ b/models/recipe.js @@ -5,4 +5,4 @@ const createRecipeTable = async () => { } catch (err) {} }; -export default createRecipeTable; \ No newline at end of file +export default createRecipeTable; diff --git a/routes/recipe.js b/routes/recipe.js index 946531f..9f8cba9 100644 --- a/routes/recipe.js +++ b/routes/recipe.js @@ -6,4 +6,10 @@ const router = express.Router(); // routes +router.get('/', recipeControllers.getAllRecipes); +router.get('/:id', recipeControllers.getOneRecipe); +router.post('/', recipeControllers.postRecipe); +router.put('/:id', recipeControllers.updateRecipe); +router.delete('/:id', recipeControllers.deleteRecipe); + export default router; diff --git a/routes/user.js b/routes/user.js index 33313ee..ba768ba 100644 --- a/routes/user.js +++ b/routes/user.js @@ -3,7 +3,11 @@ import userControllers from '../controllers/user.js'; const router = express.Router(); - // routes +router.post('/register', userControllers.register); + +router.post('/login', userControllers.login); + +router.post('/logout', userControllers.logout); export default router;