70 lines
1.8 KiB
JavaScript
70 lines
1.8 KiB
JavaScript
require("dotenv").config();
|
|
const express = require("express");
|
|
const cors = require("cors");
|
|
const { log } = require("./logger");
|
|
|
|
const auth = require("./auth");
|
|
const privacyLawWebhooks = require("./routes/privacyLawWebhooks");
|
|
const pipelineRoutes = require("./routes/pipeline");
|
|
const { getToken, listTokens } = require("./tokenStore");
|
|
|
|
const app = express();
|
|
const PORT = process.env.PORT || 3002;
|
|
|
|
app.use(cors());
|
|
|
|
app.get("/health", (req, res) => {
|
|
res.json({ ok: true, service: "race-nation-shopify-app-backend" });
|
|
});
|
|
|
|
app.get("/shops/:shop", (req, res) => {
|
|
const shop = req.params.shop;
|
|
const tokenRecord = getToken(shop);
|
|
|
|
if (!tokenRecord) {
|
|
return res.status(404).json({ status: 0, message: "Shop not found" });
|
|
}
|
|
|
|
return res.json({
|
|
status: 1,
|
|
shop,
|
|
fields: {
|
|
accessToken: tokenRecord.accessToken ? "present" : "missing",
|
|
scope: tokenRecord.scope ? "present" : "missing",
|
|
savedAt: tokenRecord.savedAt ? "present" : "missing",
|
|
locationId: tokenRecord.locationId ? "present" : "missing",
|
|
fulfillmentService: tokenRecord.fulfillmentService ? "present" : "missing",
|
|
},
|
|
});
|
|
});
|
|
|
|
app.get("/shops", (req, res) => {
|
|
res.json({ shops: listTokens() });
|
|
});
|
|
|
|
app.use("/webhooks", privacyLawWebhooks);
|
|
app.use(express.json({ limit: "10mb" }));
|
|
app.use(express.urlencoded({ limit: "10mb", extended: true }));
|
|
app.use("/", auth);
|
|
|
|
app.post("/fulfillment", (req, res) => {
|
|
console.log("POST /fulfillment:", req.body);
|
|
res.sendStatus(200);
|
|
});
|
|
|
|
app.use("/pipeline", pipelineRoutes);
|
|
|
|
const server = app.listen(PORT, () => {
|
|
log("general", `Server listening on port ${PORT}`);
|
|
});
|
|
|
|
server.on("error", (err) => {
|
|
if (err.code === "EADDRINUSE") {
|
|
console.error(`Port ${PORT} is already in use.`);
|
|
process.exit(1);
|
|
}
|
|
|
|
console.error("Server error:", err);
|
|
process.exit(1);
|
|
});
|