client/data/simple-persist.js
changeset 295 bcac9ea07d04
child 355 fa39654e7084
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/data/simple-persist.js	Fri May 16 17:18:58 2014 +0200
@@ -0,0 +1,39 @@
+// Simple persist middle ware
+var path = require('path'),
+    fs = require('fs');
+
+var jsonFile = path.join(__dirname,"example-cinema.json");
+var resetFile = path.join(__dirname,"example-cinema-src.json");
+
+exports.middleware = function(req, res, next) {
+    'use strict';
+
+    if (req.url !== '/simple-persist') {
+      return next();
+    }
+
+    res.setHeader('Content-Type', 'application/json; charset=utf-8');
+    res.statusCode = 200;
+
+    if(req.method === "PUT") {
+      req.pipe(fs.createWriteStream(jsonFile));
+      res.end(JSON.stringify({result: "OK"}));
+    }
+    else {
+      var params = require('url').parse(req.url),
+          readStream;
+      if('reset' in params && params.reset) {
+        readStream = fs.createReadStream(resetFile);
+        readStream.pipe(fs.createWriteStream(jsonFile));
+      }
+      else {
+        readStream = fs.createReadStream(jsonFile);
+        readStream.on('error',function() {
+          var srcFile = fs.createReadStream(resetFile);
+          srcFile.pipe(fs.createWriteStream(jsonFile));
+          srcFile.pipe(res);
+        });
+      }
+      readStream.pipe(res);
+    }
+};