Skip to content
This repository was archived by the owner on Sep 26, 2025. It is now read-only.
Open

Dave #10

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
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions .idea/frontend.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Procfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
web: java -Dserver.port=$PORT -cp target/classes Start
42 changes: 38 additions & 4 deletions api/controllers/auth.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import {db} from "../db.js"
import bcrypt from "bcryptjs"
import jwt from "jsonwebtoken"

export const register = (req, res)=>{

Expand All @@ -16,20 +17,53 @@ export const register = (req, res)=>{
const hash = bcrypt.hashSync(req.body.password, salt);


const q = 'INSERT INTO blog.users(username, email, password) VALUEs (?,?,?)'
const q = 'INSERT INTO blog.users(username, email, password) VALUES (?,?,?)'
const values = [
req.body.username,
req.body.email,
hash,
]

db.query('INSERT INTO blog.users(username, email, password) VALUEs (?,?,?)',[req.body.username,req.body.email,hash] ,(err,data)=>{
db.query('INSERT INTO blog.users(username, email, password) VALUES (?,?,?)',[req.body.username,req.body.email,hash] ,(err,data)=>{
if(err) return res.json(err);
return res.status(200).json("User has been created.");
});
});
};

export const login = (req, res)=>{}
export const logout = (req, res)=>{}
export const login = (req, res)=>{
// CHECK USER

const q = "SELECT * FROM users WHERE username = ?";

db.query(q, [req.body.username], (err, data)=>{
if (err) return res.status(500).json(err);
if (data.length == 0) return res.status(404).json("User not found!");


// CHECK PASSWORD

const isPasswordCorrect = bcrypt.compareSync(
req.body.password, data[0].password);

if(!isPasswordCorrect)
return res.status(400).json("Wrong username or password!")


const token = jwt.sign({id:data[0].id}, "jwtkey");
const{ password, ...other} = data[0]

res.cookie("access_token", token,{
httpOnly: true
}).status(200).json(other)

});
}
export const logout = (req, res)=>{

res.clearCookie("access_token",{
sameSite:"none",
secure:true
}).status(200).json("User has been logged out.")
};

40 changes: 39 additions & 1 deletion api/controllers/post.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,43 @@
import { db } from "../db.js";

export const getPosts =(req,res)=>{
const q = req.query.tag
? "SELECT * FROM posts WHERE tag=?"
:"SELECT * FROM posts";

db.query(q, [req.query.tag], (err,data)=>{
if (err) return res.send(err)

return res.status(200).json(data);

})
};


export const getPost =(req,res)=>{
const q =
"SELECT `username`, `title`, `desc`, p.img, `tag` `date` FROM users u JOIN posts p ON u.id = p.uid WHERE p.id =? ";

db.query(q,[req.params.id], (err,data)=>{
if(err) return res.json(err)

return res.status(200).json(data[0]);
});
};


export const addPost =(req,res)=>{
res.json("from controller")
}
};


export const deletePost =(req,res)=>{
res.json("from controller")
};


export const updatePost =(req,res)=>{
res.json("from controller")
};


2 changes: 2 additions & 0 deletions api/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@ import express, { response } from "express"
import authRoutes from "./routes/auth.js"
import userRoutes from "./routes/users.js"
import postRoutes from "./routes/posts.js"
import cookieParser from "cookie-parser"

const app = express()

app.use(express.json())
app.use(cookieParser())
app.use("/api/auth", authRoutes)
app.use("/api/users", userRoutes)
app.use("/api/posts", postRoutes)
Expand Down
109 changes: 109 additions & 0 deletions api/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,11 @@
"license": "ISC",
"dependencies": {
"bcryptjs": "^2.4.3",
"cookie-parser": "^1.4.6",
"express": "^4.18.2",
"jsonwebtoken": "^9.0.0",
"mysql": "^2.18.1",
"nodemon": "^2.0.22"
}
},
"proxy": "http://localhost:8800/api/"
}
9 changes: 8 additions & 1 deletion api/routes/posts.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
import express from "express"
import { addPost, deletePost, getPost, getPosts, updatePost } from "../controllers/post.js";

const router = express.Router()

export default router
router.get("/", getPosts);
router.get("/:id", getPost);
router.post("/", addPost);
router.delete("/:id", deletePost);
router.put("/:id", updatePost);

export default router;
1 change: 1 addition & 0 deletions out/production/frontend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules
3 changes: 3 additions & 0 deletions out/production/frontend/.idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions out/production/frontend/.idea/frontend.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions out/production/frontend/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions out/production/frontend/.idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions out/production/frontend/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions out/production/frontend/Procfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
web: java -Dserver.port=$PORT -cp target/classes Start
Loading