--- a/client/data/simple-persist.js Tue Oct 04 16:40:25 2016 +0200
+++ b/client/data/simple-persist.js Thu Jan 05 16:26:07 2017 +0100
@@ -2,37 +2,59 @@
var path = require('path'),
fs = require('fs');
-var jsonFile = path.join(__dirname,"example-cinema.json");
-var resetFile = path.join(__dirname,"example-cinema-src.json");
+var jsonFilesBase = path.join(__dirname,"json/example-cinema");
+var resetFilesBase = path.join(__dirname,"example-cinema-src");
+
+function getJsonFile(key) {
+ return jsonFilesBase + (key?("-" + key):"") + ".json";
+}
+
+function getResetFile(key) {
+ return resetFilesBase + (key?("-" + key):"") + ".json";
+}
+
+function createWriteStreamJson(file) {
+ var dir = path.join(__dirname, 'json');
+ if (!fs.existsSync(dir)){
+ fs.mkdirSync(dir);
+ }
+ return fs.createWriteStream(file);
+}
exports.middleware = function(req, res, next) {
'use strict';
+
+ var params = require('url').parse(req.url, true);
- if (req.url !== '/simple-persist') {
+ if (params.pathname !== '/simple-persist') {
return next();
}
+ var key = params.query.key;
+
+ var jsonFile = getJsonFile(key);
+ var resetFile = getResetFile(key);
+
res.setHeader('Content-Type', 'application/json; charset=utf-8');
res.statusCode = 200;
if(req.method === "PUT" || req.method === "POST") {
- req.pipe(fs.createWriteStream(jsonFile));
+ req.pipe(createWriteStreamJson(jsonFile));
setTimeout(function () {
res.end(JSON.stringify({result: "OK"}));
}, 3000);
}
else {
- var params = require('url').parse(req.url),
- readStream;
- if('reset' in params && params.reset) {
+ var readStream;
+ if('reset' in params.query && params.query.reset) {
readStream = fs.createReadStream(resetFile);
- readStream.pipe(fs.createWriteStream(jsonFile));
+ readStream.pipe(createWriteStreamJson(jsonFile));
}
else {
readStream = fs.createReadStream(jsonFile);
readStream.on('error',function() {
var srcFile = fs.createReadStream(resetFile);
- srcFile.pipe(fs.createWriteStream(jsonFile));
+ srcFile.pipe(createWriteStreamJson(jsonFile));
srcFile.pipe(res);
});
}