Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions .env
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
PORT=5002
TOKEN_ACCESS_SECRET=
DB_NAME=
DB_USER=
DB_PASSWORD=
DB_HOST=

PORT=5003
TOKEN_ACCESS_SECRET='123'
DB_NAME=my_recipe_db
DB_USER=root
DB_PASSWORD=JMoh4eHHSTKvoybD
DB_HOST=localhost
8 changes: 8 additions & 0 deletions config/db.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
import mysql from 'mysql2/promise';
import dotenv from 'dotenv';
import path, { dirname } from 'path';
import { fileURLToPath } from 'url';

//construct path
const __filename=fileURLToPath(import.meta.url);
const PATH=dirname(__filename);
dotenv.config({ path:path.join(PATH, '../.env')});

const pool = mysql.createPool({
host: process.env.DB_HOST,
Expand Down
111 changes: 106 additions & 5 deletions controllers/recipe.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,112 @@

import query from '../config/db.js';

const recipeControllers = {
getAllRecipes: async (req, res) => {},
getOneRecipe: async (req, res) => {},
postRecipe: async (req, res) => {},
updateRecipe: async (req, res) => {},
deleteRecipe: async (req, res) => {},
getAllRecipes: async (req, res) => {
try{
const getAllRecipesQuery=`SELECT *FROM recipe`;
const allRecipes = await query(getAllRecipesQuery);

if (allRecipes.length>0){
return res
.status(200)
.json({success:true, recipes:allRecipes });
}else{
return res
.status(404)
.json({ success: false, message: `No recipes found` })
}
} catch(error){
return res
.status(500)
.json({ success: false, error: error.message});

}
},


getOneRecipe: async (req, res) => {
const {id } =req.params;
try{

const getOneRecipe= `SELECT * FROM recipes WHERE id=?`;
const oneRecipe = await query( getOneRecipeQuery, id);
if (oneRecipe.length >0) {
return res.status(200).json({ success: true, recipe: oneRecipe});
}else{
return res
.status(400)
.json({success:false,
message: ` NO recipe with id:${id} found`
});

}
} catch (error){
return res.status(500).json({ success: false, error: error});
}
},


postRecipe: async (req, res) => {

const { name, description } = req.body;
try{

if ( !name || !description){
return res
.status(400)
.json({success: false, message: `all felids require...`});
}

} catch (error){
return res.status(500).json({ success: false, error: error});

}
},

updateRecipe: async (req, res) => {
const { id } = req.params;
const { name, description } = req.body;
try {
const updateRecipeQuery = `UPDATE recipes SET name=?, description=? WHERE id=?`;
const updateRecipe = await query(updateRecipeQuery,[name,description,id]);
if(updateRecipe.affectedRows > 0){
return res
.status(200)
.json({ success: true, recipe: req.body});
}else{
return res
.status(404)
.json({ success: false, message:`please fille all the field`});
}
} catch ( error) {
return res
.status(500)
.json({ success: false, message: error.message});
}
},

deleteRecipe: async (req, res) => {

const { id } = req.params;
const deleteRecipe = await query(`delete FROM recipe WHERE id =?`,id);
try {
if (!deleteRecipe){
return res
.status(200)
.json({ success: true, message: `this id does not exist`});
}else{
return res
.status(404)
.json({ success: false, message: `This id does not exit` });
}
}catch (error){
return res
.status(500)
.json({ success: false, message: error.message});
}
}
};


export default recipeControllers;
5 changes: 5 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
import express from 'express';
import cookieParser from 'cookie-parser';
import dotenv from 'dotenv';
import bodyParser from 'body-parser';

dotenv.config();

import path, { dirname } from 'path';
import { fileURLToPath } from 'url';
Expand All @@ -12,6 +16,7 @@ import userRoutes from './routes/user.js';
import recipeRoutes from './routes/recipe.js';

// set port

const PORT = process.env.PORT || 5009;

// Construct path
Expand Down
10 changes: 9 additions & 1 deletion models/recipe.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,15 @@ import query from '../config/db.js';

const createRecipeTable = async () => {
try {
} catch (err) {}
const createRecipeTable= `CREATE TABLE IF NOT EXISTS recipes{
id INT PRIMARY KEY AUTO_INCREMENT,
description TEXT NOT NULL
}`;
const result = await query(createRecipeTable);
console.log(`Recipe table created successfully...`);
} catch (err) {
console.log(err);
}
};

export default createRecipeTable;
Loading