mirror of
https://github.com/FranP-code/open-react-blog-api.git
synced 2025-10-12 23:52:57 +00:00
72 lines
1.6 KiB
JavaScript
72 lines
1.6 KiB
JavaScript
const express = require('express')
|
|
const router = express.Router()
|
|
|
|
const admin = require("firebase-admin");
|
|
const firebaseSDK = require("../firebase/firebase.js");
|
|
const {getFirestore} = require("firebase-admin/firestore")
|
|
|
|
admin.initializeApp({
|
|
credential: admin.credential.cert(firebaseSDK)
|
|
});
|
|
|
|
const db = getFirestore()
|
|
|
|
router.get("/", async (req, res) => {
|
|
|
|
console.log(req.body)
|
|
|
|
//Check if body.user has sended
|
|
if (!req.body || !req.body.user) {
|
|
res.status(400).json({message: "User not defined on the body of request"})
|
|
return
|
|
}
|
|
|
|
//Get user data
|
|
const user = req.body.user
|
|
|
|
const userData = {}
|
|
|
|
try {
|
|
const userReference = db.collection('users')
|
|
const userRequest = await userReference.where("username", "==", user).limit(1).get()
|
|
|
|
userRequest.forEach(doc => {
|
|
userData.id = doc.id
|
|
userData.username = doc.data()
|
|
})
|
|
} catch (err) {
|
|
console.log(err)
|
|
res.status(400).json(err)
|
|
}
|
|
|
|
//Check if the userID is defined
|
|
if (!userData.id) {
|
|
res.status(400).json({message: "User don't found"})
|
|
return
|
|
}
|
|
|
|
//Get user posts
|
|
userData.posts = []
|
|
|
|
try {
|
|
|
|
const postsReference = await db.collection('users').doc(userData.id).collection("posts").get()
|
|
|
|
postsReference.forEach(doc => {
|
|
userData.posts.push({
|
|
id: doc.id,
|
|
data: doc.data()
|
|
})
|
|
})
|
|
} catch (error) {
|
|
console.log(err)
|
|
res.status(400).json(err)
|
|
}
|
|
|
|
//Hide user id
|
|
userData.id = null
|
|
|
|
res.json(userData)
|
|
})
|
|
|
|
module.exports = router |