User endpoint done

This commit is contained in:
2022-05-30 16:03:16 -03:00
parent 7e08e5a5b5
commit 57622a34d8
4 changed files with 80 additions and 1 deletions

2
.gitignore vendored
View File

@@ -2,4 +2,4 @@ package-lock.json
node_modules
.env
functions
firebase

View File

@@ -20,6 +20,8 @@
"homepage": "https://github.com/FranP-code/open-react-blog-api#readme",
"dependencies": {
"express": "^4.18.1",
"firebase-admin": "^10.2.0",
"nodemon": "^2.0.16",
"path": "^0.12.7"
}
}

72
src/routes/user.js Normal file
View File

@@ -0,0 +1,72 @@
const express = require('express')
const router = express.Router()
const admin = require("firebase-admin");
const firebaseSDK = require("../firebase/firebase.json");
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

View File

@@ -3,8 +3,13 @@ const server = express()
const port = 3000
server.use(express.json())
const index = require('./routes/index.js')
server.use("/", index)
const user = require('./routes/user.js')
server.use("/user", user)
server.listen(port)
console.log("Listening in the port ", port)