Skip to content

Commit 9c96f2d

Browse files
This adds a Course service and routes, removes the Campus iframe.
1 parent 0de4e32 commit 9c96f2d

4 files changed

Lines changed: 44 additions & 2 deletions

File tree

app.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ var users = require('./routes/users');
88
var news = require('./routes/news');
99
var flow = require('./routes/flow');
1010
var styleguide = require('./routes/styleguide');
11+
var courses = require('./routes/courses');
1112

1213
var app = express();
1314

@@ -33,6 +34,8 @@ app.use('/users', users);
3334
app.use('/news', news);
3435
app.use('/flow', flow);
3536
app.use('/styleguide', styleguide);
37+
app.use('/courses.json', courses);
38+
app.use('/courses', courses)
3639

3740
// catch 404 and forward to error handler
3841
app.use(function(req, res, next) {
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ var assert = require('chai').assert,
44
CS = require('./cs.js'),
55
consoleInput = code[0].code,
66
userName;
7+
78
if(typeof(sandbox) == 'undefined') {
89
var sandbox = new Sandbox();
910
}
11+
1012
describe('set_name', function() {
1113
it('f_no_name', function() {
1214
var nameUsed;
@@ -20,6 +22,7 @@ describe('set_name', function() {
2022
}
2123
assert(nameUsed);
2224
});
25+
2326
it('f_empty_string', function() {
2427
var isNotEmptyString;
2528
CS.traverse(consoleInput, function(node) {
@@ -30,6 +33,7 @@ describe('set_name', function() {
3033
assert(isNotEmptyString);
3134
});
3235
});
36+
3337
details("output", function() {
3438
var message;
3539
try {
@@ -52,7 +56,7 @@ failures = {
5256
"hint": "Here's an example that you can type in: `\"Gregg\";`"
5357
},
5458
"f_empty_string": {
55-
"message": "You have the quotes, but you need to put your name inside them."
59+
"message": "You have the quotes, but you need to put your name inside them.",
5660
"hint": "Here's an example that you can type in: `\"Gregg\";`"
5761
}
5862
}
@@ -67,5 +71,5 @@ module.exports = {
6771
],
6872
"tests": tests,
6973
"failures": failures,
70-
"answer": "Gregg"
74+
"answer": "\"Gregg\""
7175
}

routes/courses.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
var express = require('express');
2+
var router = express.Router();
3+
var path = require('path');
4+
var Course = require(path.join(__dirname, '..', 'services', 'course'));
5+
6+
router
7+
.get('/list.json', function(req, res) {
8+
res.json(Course.all());
9+
})
10+
.get('/:id.json', function(req, res) {
11+
res.json(Course.find(req.params.id));
12+
});
13+
14+
module.exports = router;

services/course.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
var fs = require('fs');
2+
var path = require('path');
3+
4+
var Course = {
5+
all() {
6+
return fs.readdirSync(path.join(__dirname, '..', 'courses'));
7+
},
8+
find(id) {
9+
if (this.all().indexOf(id) > -1) {
10+
files = fs.readdirSync(path.join(__dirname, '..', 'courses', id));
11+
12+
return files.map(function(file) {
13+
return require(path.join(__dirname, '..', 'courses', id, file));
14+
});
15+
} else {
16+
return { error: `invalid course ${id}` };
17+
}
18+
}
19+
}
20+
21+
module.exports = Course;

0 commit comments

Comments
 (0)