cloud-sql-rest-api/index.js (43 lines of code) (raw):
const express = require("express");
const mysql = require("mysql");
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 query = "SELECT * FROM breeds WHERE name = ?";
pool.query(query, [ req.params.breed ], (error, results) => {
if (!results[0]) {
res.json({ status: "Not found!" });
} else {
res.json(results[0]);
}
});
});
const pool = mysql.createPool({
user: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
socketPath: `/cloudsql/${process.env.INSTANCE_CONNECTION_NAME}`,
});
app.post("/", async (req, res) => {
const data = {
name: req.body.name,
type: req.body.type,
lifeExpectancy: req.body.lifeExpectancy,
origin: req.body.origin
}
const query = "INSERT INTO breeds VALUES (?, ?, ?, ?)";
pool.query(query, Object.values(data), (error) => {
if (error) {
res.json({ status: "failure", reason: error.code });
} else {
res.json({ status: "success", data: data});
}
});
});