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
86 changes: 86 additions & 0 deletions api/posts/posts-router.js
Original file line number Diff line number Diff line change
@@ -1 +1,87 @@
// posts için gerekli routerları buraya yazın
const express = require("express");
const Post = require("./posts-model");

const router = express.Router();

router.get("/", (req, res) => {
Post.find().then(posts => {
res.json(posts);
})
});

router.get("/:id", (req, res) => {
Post.findById(req.param.id).then(findPost => {
if (!findPost) {
res.status(404).json({ message: "Belirtilen ID'li gönderi bulunamadı" })
}
});
});
router.post("/", (req, res) => {
const { title, contents } = req.body;
if (!title || !contents) {
res.status(400).json({ message: "Lütfen gönderi için bir title ve contents sağlayın" })
}
else {
try {
let { id } = await Post.insert({ title, contents });
let insertedPost = await Post.findById(id);
res.status(201).json(insertedPost);
} catch (error) {
res.status(500).json({ message: "Veritabanına kaydedilirken bir hata oluştu" });
}
}
});
router.put("/:id", async (req, res) => {
let existPost = await Post.findById(req.params.id);
if (!existPost) {
req.status(404).json({ message: "Belirtilen ID'li gönderi bulunamadı " });
} else {
let { title, contents } = req.body; //title:req.body.title
if (!title || !contents) {
res.status(400).json({ message: "Lütfen gönderi için title ve contents sağlayın" });
} else {
try {
let updatedPost = await Post.update(req.params.id, req.body);
let updatedPost = await Post.findById(updatedPostId);
res.status(200).json(updatedPost);
} catch (error) {
res.status(500).json({ message: "Gönderi bilgileri güncellenemedi" })
}

}
}
});
router.delete("/:id" async (req, res) => {
try {
let existPost = await Post.findById(req.params.id);
if (!existPost) {
res.status(404).json({ message: "Belirtilen ID'li gönderi bulunamadı" });

}
else {
await Post.remove(req.params.id);
res.status(200).json(existPost);
}

} catch (error) {
res.status(500).json({ message: "Gönderi silinemedi" });

}
});
router.get("/:id/comments", async (req, res) => {
try {
let existPost = await Post.findById(req.params.id);
if (!existPost) {
res.status(404).json({ message: "Girilen ID'li gönderi bulunamadı." });
} else {
let comments = await Post.findPostComments(req.params.id);
res.status(200).json(comments);
}
} catch (error) {
res.status(500).json({ message: "Yorumlar bilgisi getirilemedi" })

}
});

module.exports = router;
9 changes: 9 additions & 0 deletions api/server.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
// server için gerekli olanları burada ayarlayın

// posts router'ını buraya require edin ve bağlayın
const express = require("express");

const server = express();
server.use(express.json());

const router = require("./posts/posts-router");
server.use("/api/posts", router);

module.exports = server;