Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
parkpow
GitHub Repository: parkpow/deep-license-plate-recognition
Path: blob/master/webhooks/webhook_reader.js
1072 views
1
/**
2
* # Install dependecies
3
*
4
* npm install
5
*
6
* # Run
7
* node webhook_reader.js
8
*/
9
10
const fs = require("node:fs");
11
const http = require("node:http");
12
const multer = require("multer");
13
14
const uploadsDir = "./uploads";
15
16
const storage = multer.diskStorage({
17
destination: (_req, _file, cb) => {
18
if (!fs.existsSync(uploadsDir)) {
19
fs.mkdirSync(uploadsDir);
20
}
21
cb(null, uploadsDir);
22
},
23
filename: (_req, file, cb) => {
24
cb(null, file.originalname);
25
},
26
});
27
28
const filesParser = multer({ storage }).any();
29
30
const server = http.createServer((req, res) => {
31
if (req.method === "POST") {
32
collectRequestData(req, res);
33
} else {
34
res.end(`Send a POST request instead.`);
35
}
36
});
37
38
server.listen(8001, () => {
39
console.log("Server listening on port 8001");
40
});
41
42
const CONTENT_TYPE_MULTIPART_FORM_DATA = "multipart/form-data";
43
44
function collectRequestData(request, response) {
45
const contentType = request.headers["content-type"];
46
// console.log(`Content type: ${contentType}`);
47
if (!contentType) {
48
response.end("OK!");
49
} else if (contentType.indexOf(CONTENT_TYPE_MULTIPART_FORM_DATA) > -1) {
50
filesParser(request, response, (err) => {
51
if (err) {
52
// A Multer error occurred when uploading.
53
// An unknown error occurred when uploading.
54
console.error(err);
55
response.writeHead(500);
56
response.end("Error");
57
} else {
58
jsonData = request.body.json;
59
console.log(jsonData);
60
response.end("OK!");
61
}
62
});
63
} else {
64
let rawData = "";
65
request.on("data", (data) => {
66
rawData += data;
67
});
68
request.on("end", () => {
69
let decodedData = decodeURIComponent(rawData);
70
if (decodedData.includes("json=")) {
71
decodedData = decodedData.split("+").join(" ");
72
const jsonData = decodedData.split("json=")[1];
73
console.log(jsonData);
74
response.end("OK!");
75
}
76
});
77
}
78
}
79
80