first commit
This commit is contained in:
parent
2430371884
commit
a1c86e9cfb
13 changed files with 669 additions and 0 deletions
0
js/README.md
Normal file
0
js/README.md
Normal file
53
js/inMemoryWorkshop.js
Normal file
53
js/inMemoryWorkshop.js
Normal file
|
@ -0,0 +1,53 @@
|
|||
inMemoryWorkshop = []
|
||||
|
||||
|
||||
function getWorkshopList() {
|
||||
return new Promise((resolve, ) => {
|
||||
resolve(inMemoryWorkshop)
|
||||
})
|
||||
}
|
||||
|
||||
function getWorkshopByName(name) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!name) {
|
||||
reject(new Error("name parameter is required"))
|
||||
}
|
||||
resolve(inMemoryWorkshop.find(workshop => workshop.name === workshop))
|
||||
})
|
||||
}
|
||||
|
||||
function addWorkshop(name, description) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!name) {
|
||||
reject(new Error("Workshop name required"))
|
||||
}
|
||||
if (!description) {
|
||||
reject(new Error("Workshop description required"))
|
||||
}
|
||||
inMemoryWorkshop.push({
|
||||
name,
|
||||
description
|
||||
})
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
|
||||
function removeWorkshopByName(name) {
|
||||
return new Promise((resolve, reject) => {
|
||||
reject(new Error("Not implemented"))
|
||||
})
|
||||
}
|
||||
|
||||
function updateWorkshop(name) {
|
||||
return new Promise((resolve, reject) => {
|
||||
reject(new Error("Not implemented"))
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getWorkshopList,
|
||||
getWorkshopByName,
|
||||
addWorkshop,
|
||||
removeWorkshopByName,
|
||||
updateWorkshop
|
||||
}
|
54
js/index.js
Normal file
54
js/index.js
Normal file
|
@ -0,0 +1,54 @@
|
|||
|
||||
const express = require('express')
|
||||
const app = express()
|
||||
const InMemoryWorkshop = require("./inMemoryWorkshop")
|
||||
const path = require("path")
|
||||
const ejs = require('ejs')
|
||||
// set the view engine to ejs
|
||||
app.set('view engine', 'ejs');
|
||||
app.set('views', path.join(__dirname, '..', '/ejs'));
|
||||
app.use(express.static(path.join(__dirname , '..', 'css')));
|
||||
|
||||
|
||||
app.get('/', function (req, res) {
|
||||
InMemoryWorkshop.getWorkshopList()
|
||||
.then(workshops => {
|
||||
res.render("index", {
|
||||
workshops: workshops
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
app.get('/workshop', function (req, res) {
|
||||
res.render('workshop')
|
||||
})
|
||||
|
||||
app.post('/workshop', function (req, res) {
|
||||
const name = req.body.name
|
||||
const description = req.body.description
|
||||
InMemoryWorkshop.addWorkshop(name, description).then(() => {
|
||||
res.render('index')
|
||||
})
|
||||
.catch(e =>ejs.send(e.message))
|
||||
})
|
||||
|
||||
app.get('/workshop/:name', function (req, res) {
|
||||
const workshopName = req.params.name
|
||||
InMemoryWorkshop.getWorkshopByName(workshopName)
|
||||
.then(workshop => {
|
||||
res.render('ejs/workshop', workshop)
|
||||
})
|
||||
.catch(e =>ejs.send(e.message))
|
||||
})
|
||||
|
||||
app.post('/remove-workshop', function (req, res) {
|
||||
res.status(500).send("TODO")
|
||||
})
|
||||
|
||||
app.post('/update-workshop', function(req, res) {
|
||||
res.status(500).send("TODO")
|
||||
})
|
||||
|
||||
app.listen(3000, function () {
|
||||
console.log('Workshop app listening on port 3000!')
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue