client/data/simple-persist.js
changeset 647 eaaa1efce396
parent 356 763c925e7a9c
--- 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);
         });
       }