UNPKG

1.95 kBJavaScriptView Raw
1var config = {
2 'PostgresURL': process.env.OSM_COMMENTS_POSTGRES_URL || 'postgres://postgres@localhost/osm-comments'
3};
4require('./lib/config')(config);
5
6var express = require('express');
7var notes = require('./notes/index');
8var changesets = require('./changesets/index');
9var cors = require('cors');
10var errors = require('mapbox-error');
11var ErrorHTTP = require('mapbox-error').ErrorHTTP;
12var customErrors = require('./errors');
13
14var server = module.exports = express();
15
16server.use(cors());
17
18server.get('/', function(req, res) {
19 res.json({'status': 'ok'});
20});
21
22server.get('/api/v1/notes', function(req, res, next) {
23 notes.search(req.query, function(err, geojson) {
24 if (err) {
25 return next(err);
26 }
27 res.json(geojson);
28 });
29});
30
31server.get('/api/v1/changesets', function(req, res, next) {
32 changesets.search(req.query, function(err, geojson) {
33 if (err) {
34 return next(err);
35 }
36 res.json(geojson);
37 });
38});
39
40server.get('/api/v1/notes/:id', function(req, res, next) {
41 notes.get(req.params.id, function(err, geojson) {
42 if (err) {
43 return next(err);
44 }
45 res.json(geojson);
46 });
47});
48
49server.get('/api/v1/changesets/:id', function(req, res, next) {
50 changesets.get(req.params.id, function(err, geojson) {
51 if (err) {
52 return next(err);
53 }
54 res.json(geojson);
55 });
56});
57
58server.use(function(err, req, res, next) {
59 if (err instanceof customErrors.ParseError) {
60 next(new ErrorHTTP('Invalid request: ' + err.message, 422));
61 } else if (err instanceof customErrors.NotFoundError) {
62 next(new ErrorHTTP('Not found: ' + err.message, 404));
63 } else {
64 next(err);
65 }
66});
67
68server.use(errors.showError);
69server.use(errors.notFound);
70
71// server.use(function(err, req, res, next) {
72// console.log(err);
73// res.status(500).send(JSON.stringify(err));
74// });