Skip to content

Commit f0ca6f9

Browse files
committed
First working draft of API
1 parent 8a5843a commit f0ca6f9

9 files changed

+2580
-75
lines changed

app.js

+11-5
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,24 @@ var path = require('path');
33
var cookieParser = require('cookie-parser');
44
var logger = require('morgan');
55

6-
var indexRouter = require('./routes/index');
7-
var usersRouter = require('./routes/users');
86

9-
var app = express();
7+
var indexRouter = require('./routes/index')
8+
var electionRouter = require('./routes/electionresults')
109

10+
var app = express();
11+
var mongoose = require('mongoose')
12+
var mongoDB = 'mongodb+srv://Reader:[email protected]/test?retryWrites=true&w=majority'
13+
//Read only account forr DB, no need to remove/hide password
14+
mongoose.connect(mongoDB, { useNewUrlParser: true, dbName: "Elections" })
15+
var db = mongoose.connection
16+
db.on('error', console.error.bind(console, 'MongoDB Connection Problem'))
1117
app.use(logger('dev'));
1218
app.use(express.json());
1319
app.use(express.urlencoded({ extended: false }));
1420
app.use(cookieParser());
1521
app.use(express.static(path.join(__dirname, 'public')));
1622

17-
app.use('/', indexRouter);
18-
app.use('/users', usersRouter);
23+
app.use('/', indexRouter)
24+
app.use('/electionresults', electionRouter);
1925

2026
module.exports = app;
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
const electionResult = require('../models/election_result')
2+
3+
4+
exports.index = function (req, res) {
5+
electionResult.find({}, function (err, result) {
6+
if (err) { return next(err) }
7+
if (result.length == 0) {
8+
return res.status(404).send({ error: "Couldn't find any results!" })
9+
}
10+
return res.json(result)
11+
})
12+
}
13+
14+
exports.city_result = function (req, res) {
15+
electionResult.find({ 'id': req.params.id }, function (err, result) {
16+
if (err) { return next(err) }
17+
if (result.length == 0) {
18+
return res.status(404).send({ error: "City is not found!" })
19+
}
20+
return res.json(result)
21+
})
22+
}

models/election_result.js

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const mongoose = require('mongoose')
2+
const Schema = mongoose.Schema
3+
4+
const ElectionResultSchema = new Schema({
5+
id: { type: Number },
6+
name: { type: String },
7+
isMetropolitan: { type: Boolean },
8+
results: { type: Array }
9+
})
10+
11+
ElectionResultSchema.virtual('url').get(function () {
12+
return '/electionresults/' + this.id
13+
})
14+
15+
ElectionResultSchema.virtual('name_url').get(function () {
16+
return '/electionresults/' + this.name
17+
})
18+
19+
module.exports = mongoose.model('election_result', ElectionResultSchema)

0 commit comments

Comments
 (0)