-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
103 lines (89 loc) · 2.4 KB
/
index.js
File metadata and controls
103 lines (89 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
const path = require("path")
const express = require("express")
const bodyParser = require("body-parser")
const app = express()
const router = express.Router()
const ejs = require("ejs")
const port = process.env.PORT
const Cosmic = require('cosmicjs')
const api = Cosmic()
const { Q } = require("./db/")
app.use(bodyParser.json())
app.use(
bodyParser.urlencoded({
extended: true
})
)
app.set("view engine", "ejs")
app.set("views", "views")
app.use(express.static(path.join(__dirname, "/")), router)
// CosmicJS bucket to get posts from
const bucket = api.bucket({
slug: "deepmode-2",
})
router.get("/", function(req, res) {
res.render("index", {})
})
router.get("/blog", async function(req, res) {
try {
const posts = (await bucket.getObjects()).objects;
res.render("blog", { posts });
} catch (err) {
console.log(err);
res.redirect("/");
}
})
router.get("/blog/:postSlug", async function(req, res) {
const post = (await bucket.getObject({ slug: req.params.postSlug })).object;
res.render("post", { post });
})
router.get("/roadmap", async function(req, res) {
const roadmap = await Q.roadmapFeature.getAll();
const { feature_success } = req.query;
let featureChosen;
if (feature_success) {
featureChosen = roadmap.find(feature => feature.id === Number(feature_success));
if (featureChosen)
featureChosen = featureChosen.name;
}
res.render("roadmap", {
roadmap: roadmap,
feature_success,
featureChosen
});
})
router.post("/roadmapWaitlist", async function(req, res) {
try {
const { email, featureID } = req.body;
await Q.roadmapWaitlist.insertOne(email, featureID);
res.redirect("/roadmap?feature_success=" + featureID);
} catch (err) {
console.log(err);
res.status(500).send();
}
});
router.get("/motivation", function(req, res) {
res.render("motivation", {})
})
router.get("/terms", function(req, res) {
res.render("termsOfService", {})
})
router.get("/privacy", function(req, res) {
res.render("privacyPolicy", {})
})
router.get("/success", function(req, res) {
res.render("success", {})
})
router.post("/waitlist", async function(req, res) {
const { email, receiveUpdates } = req.body
try {
await Q.waitlist.insertOne(email, !!receiveUpdates)
res.redirect("/success")
} catch (err) {
console.log(err)
res.redirect("/")
}
})
app.listen(port, function() {
console.log(`Listening on port ${port}`)
})