-
Notifications
You must be signed in to change notification settings - Fork 2
/
server.js
82 lines (76 loc) · 2.18 KB
/
server.js
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
var express = require("express");
var mongo = require("mongodb");
var pdfs = require("./core/pdfs.js");
var Pdf = require("./core/pdf.js").Pdf;
var tasks = require("./core/tasks.js");
var Task = require("./core/task.js").Task;
var app = express();
app.configure(function () {
app.use(express.logger("dev"));
app.use(express.json());
app.use(express.urlencoded());
});
app.use(function(req, res, next){
res.header("Access-Control-Allow-Origin", req.headers.origin);
next();
});
var mongoClient = new mongo.MongoClient(new mongo.Server("localhost", 27017));
mongoClient.open(function(err, mongoClient) {
/* Static stuff */
app.use("/driver", express.static(__dirname + "/driver"));
var repoDatabase = mongoClient.db("pdfRepo");
/* Pdf handling */
app.get("/pdfs", function(req, res) {
pdfs.getList(repoDatabase, {}, function(err, items) {
res.json(items);
});
});
app.get("/pdfcount", function(req, res) {
pdfs.getCount(repoDatabase, function(err, count) {
res.send(count);
});
});
app.get("/pdfs/:fileid", function(req, res) {
pdfs.getPdf(repoDatabase, req, function(err, pdf) {
if (pdf) {
res.json(pdf);
} else {
res.send(404);
}
});
});
app.get("/pdfs/:fileid/file", function(req, res) {
pdfs.getPdffile(repoDatabase, req, res);
});
app.post("/pdfs/:fileid", function(req, res) {
pdfs.insertPdf(repoDatabase, req, res);
});
/* Tasks handling */
app.get("/tasks", function(req, res) {
tasks.getList(repoDatabase, {}, function(err, items) {
res.json(items);
});
});
app.get("/taskcount", function(req, res) {
tasks.getCount(repoDatabase, function(err, count) {
res.send(count);
});
});
app.get("/task", function(req, res) {
tasks.getTask(repoDatabase, function(err, task) {
if (err) {
res.send(err);
} else {
res.json(task);
}
});
});
app.post("/task/:taskid/result", function(req, res) {
tasks.addResult(repoDatabase, req, res);
});
app.post("/tasks/all", function(req, res) {
tasks.insertTaskForAllFiles(repoDatabase, req, res);
});
});
app.listen(3000);
console.log("PdfRepo is listening on port 3000 ...");