-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathroutes.js
More file actions
57 lines (52 loc) · 1.65 KB
/
routes.js
File metadata and controls
57 lines (52 loc) · 1.65 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
module.exports = (database) => {
const index = async (req, res) => {
const regNumbers = await database.getRegNumbers()
const towns = await database.getAllTowns()
res.render("index", {
towns,
regNumbers
})
}
const add = async (req, res) => {
let regNumber = req.body.regNumber
regNumber = regNumber.toUpperCase().trim()
let code = regNumber.slice(0,2)
const regex = /[A-Z]{2,3}\s[0-9]{3}(\-|\s)?[0-9]{3}/
const town = await database.findTownCode(code)
const duplicate = await database.findRegNumber(regNumber)
if(!regex.test(regNumber)){
req.flash("error", "Please enter valid registration number")
} else if(!town){
req.flash("error", "Registration code not accepted")
} else if(duplicate){
req.flash("error", "Registration number already exists")
} else {
req.flash("success", "Registration number added successfully")
await database.addRegNumber(regNumber, town.id)
}
res.redirect("/")
}
const filter = (req, res) => {
let town = req.body.town
if(town == "all"){
res.redirect("/")
} else {
res.redirect("/filter/"+town)
}
}
const filtered = async (req, res) => {
let town = req.params.town
let towns = await database.getAllTowns()
const regNumbers = await database.getRegNumbersForTown(town)
res.render("index", {
towns,
regNumbers
})
}
return {
index,
add,
filter,
filtered
}
}