152 lines
4.4 KiB
JavaScript
152 lines
4.4 KiB
JavaScript
const db = require('../surreal');
|
|
const router = require('express').Router();
|
|
|
|
router.get('/', async (req, res) => {
|
|
try{
|
|
const homepage = await db.query(`SELECT * FROM homepage`);
|
|
|
|
if(homepage.length == 0) return res.status(400).json({error: "Homepage does not exist"});
|
|
|
|
const trending = homepage[0].trending;
|
|
const mostLiked = homepage[0].mostLiked;
|
|
const mostCommented = homepage[0].mostCommented;
|
|
const mostSaved = homepage[0].mostSaved;
|
|
|
|
const returnData = {
|
|
trending: trending,
|
|
mostLiked: mostLiked,
|
|
mostCommented: mostCommented,
|
|
mostSaved: mostSaved
|
|
}
|
|
|
|
res.status(200).json({returnData});
|
|
}
|
|
catch(err){
|
|
console.log(err);
|
|
res.status(500).json({error: "Internal server error"});
|
|
}
|
|
});
|
|
|
|
router.get('/trending', async (req, res) => {
|
|
try{
|
|
const homepage = await db.query(`SELECT * FROM homepage`);
|
|
|
|
if(homepage.length == 0) return res.status(400).json({error: "Homepage does not exist"});
|
|
|
|
const trending = homepage[0].trending;
|
|
|
|
res.status(200).json({trending});
|
|
}
|
|
catch(err){
|
|
console.log(err);
|
|
res.status(500).json({error: "Internal server error"});
|
|
}
|
|
});
|
|
|
|
router.get('/mostLiked', async (req, res) => {
|
|
try{
|
|
const homepage = await db.query(`SELECT * FROM homepage`);
|
|
|
|
if(homepage.length == 0) return res.status(400).json({error: "Homepage does not exist"});
|
|
|
|
const mostLiked = homepage[0].mostLiked;
|
|
|
|
res.status(200).json({mostLiked});
|
|
}
|
|
catch(err){
|
|
console.log(err);
|
|
res.status(500).json({error: "Internal server error"});
|
|
}
|
|
});
|
|
|
|
router.get('/mostCommented', async (req, res) => {
|
|
try{
|
|
const homepage = await db.query(`SELECT * FROM homepage`);
|
|
|
|
if(homepage.length == 0) return res.status(400).json({error: "Homepage does not exist"});
|
|
|
|
const mostCommented = homepage[0].mostCommented;
|
|
|
|
res.status(200).json({mostCommented});
|
|
}
|
|
catch(err){
|
|
console.log(err);
|
|
res.status(500).json({error: "Internal server error"});
|
|
}
|
|
});
|
|
|
|
router.get('/mostSaved', async (req, res) => {
|
|
try{
|
|
const homepage = await db.query(`SELECT * FROM homepage`);
|
|
|
|
if(homepage.length == 0) return res.status(400).json({error: "Homepage does not exist"});
|
|
|
|
const mostSaved = homepage[0].mostSaved;
|
|
|
|
res.status(200).json({mostSaved});
|
|
}
|
|
catch(err){
|
|
console.log(err);
|
|
res.status(500).json({error: "Internal server error"});
|
|
}
|
|
});
|
|
|
|
router.get('/categories', async (req, res) => {
|
|
try{
|
|
const categories = await db.query(`SELECT name, description, count(posts) AS count FROM category`);
|
|
|
|
if(categories.length == 0) return res.status(400).json({error: "Categories do not exist"});
|
|
|
|
res.status(200).json({categories});
|
|
}
|
|
catch(err){
|
|
console.log(err);
|
|
res.status(500).json({error: "Internal server error"});
|
|
}
|
|
});
|
|
|
|
router.get('/category/:name/', async (req, res) => {
|
|
try{
|
|
const name = req.params.name;
|
|
|
|
const category = await db.query(`SELECT posts FROM category WHERE name = string::lowercase("${name}")`);
|
|
//reverse the array so the latest posts are first
|
|
category[0].posts.reverse();
|
|
|
|
if(category.length == 0) return res.status(400).json({error: "Category does not exist"});
|
|
|
|
postarray = []
|
|
|
|
//select woth the id
|
|
for(const id of category[0].posts){
|
|
const post = await db.query(`SELECT title, date, viewcount, id, author FROM posts WHERE id = "posts:${id}"`);
|
|
//remopve posts: from the id
|
|
post[0].id = post[0].id.split(":")[1];
|
|
postarray.push(post[0]);
|
|
}
|
|
|
|
res.status(200).json({postarray});
|
|
}
|
|
catch(err){
|
|
console.log(err);
|
|
res.status(500).json({error: "Internal server error"});
|
|
}
|
|
});
|
|
|
|
router.get('/category/details/:name/', async (req, res) => {
|
|
try{
|
|
const name = req.params.name;
|
|
|
|
const category = await db.query(`SELECT description FROM category WHERE name = string::lowercase("${name}")`);
|
|
|
|
if(category.length == 0) return res.status(400).json({error: "Category does not exist"});
|
|
|
|
res.status(200).json({description: category[0].description});
|
|
}
|
|
catch(err){
|
|
console.log(err);
|
|
res.status(500).json({error: "Internal server error"});
|
|
}
|
|
});
|
|
|
|
module.exports = router; |