Files
open-react-blog-api/src/routes/user.js
2022-05-30 18:20:13 -03:00

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