This repository was archived by the owner on Apr 1, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathserver.js
More file actions
88 lines (69 loc) · 2.03 KB
/
server.js
File metadata and controls
88 lines (69 loc) · 2.03 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
//
// Quick-n-dirty Example API Server for Skedulo intervew questions
//
// Imports
var express = require('express');
var url = require('url');
// Some sample data
var people = [
{id: "1", name: "Bill Gates", org: "Microsoft"},
{id: "2", name: "Steve Jobs", org: "Apple"},
{id: "3", name: "Barack Obama", org: "Government"},
{id: "4", name: "Jonathan Doe", org: "ACME"}
];
var interests = [
{personId: "1", name: "Skiing"},
{personId: "1", name: "Philanthropy"},
{personId: "2", name: "Fonts"},
{personId: "3", name: "Basketball"}
];
var skills = [
{personId: "1", name: "C++"},
{personId: "1", name: "Basic"},
{personId: "1", name: "Monopoly"},
{personId: "2", name: "Turtlenecks"},
{personId: "2", name: "Instagram"},
{personId: "3", name: "Basketball"},
{personId: "3", name: "Cycling"}
];
var app = express();
// Allow static content
app.configure(function(){
app.use(express.static(__dirname + '/public'));
});
// API to get a list of people
app.get('/people', function(req, res){
res.json( people )
});
// API to get the id of the richest person
app.get('/richest', function(req,res){
res.json({
richestPerson: 1
});
});
// Get a list of interest for the given people ids. (/interests?personIds=1,2,3)
app.get('/interests', function(req, res){
var query = url.parse( req.url, true ).query
if( ! query.personIds ){
return res.send(500, "Parameter 'personIds' required")
}
var personIds = query.personIds.split(",");
var results = interests.filter(function(interest){
return personIds.indexOf( interest.personId ) >= 0;
});
res.json( results );
});
// Get a list of skills for the given people ids. (/interests?personIds=1,2,3)
app.get('/skills', function(req, res){
var query = url.parse( req.url, true ).query
if( ! query.personIds ){
return res.send(500, "Parameter 'personIds' required")
}
var personIds = query.personIds.split(",");
var results = skills.filter(function(skill){
return personIds.indexOf( skill.personId ) >= 0;
});
res.json( results );
});
// Start the server!
app.listen(3000);