hosting-a-rest-api-with-a-cloud-firestore-backend/index.js (33 lines of code) (raw):
const express = require('express');
const Firestore = require('@google-cloud/firestore')
const db = new Firestore();
const app = express();
app.use(express.json());
const port = process.env.PORT || 8080;
app.listen(port, () => {
console.log(`BarkBark Rest API listening on port ${port}`);
});
app.get('/', async (req, res) => {
res.json({status: 'Bark bark! Ready to roll.'});
})
app.get('/:breed', async (req, res) => {
const breed = req.params.breed;
const query = db.collection('dogs').where('name', '==', breed);
const querySnapshot = await query.get();
if (querySnapshot.size > 0) {
res.json(querySnapshot.docs[0].data());
}
else {
res.json({status: 'Not found'});
}
})
app.post('/', async (req, res) => {
const data = {
name: req.body.name,
origin: req.body.origin,
lifeExpectancy: req.body.lifeExpectancy,
type: req.body.type
}
await db.collection('dogs').doc().set(data);
res.json({ status: 'success', data: { dog: data } });
})