client/data/simple-persist.js
author rougeronj
Mon, 22 Dec 2014 12:39:42 +0100
changeset 351 96b618aa0932
parent 295 bcac9ea07d04
child 355 fa39654e7084
permissions -rw-r--r--
update path to new lib folders in renkan js files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
295
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
// Simple persist middle ware
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
var path = require('path'),
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
    fs = require('fs');
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
var jsonFile = path.join(__dirname,"example-cinema.json");
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
var resetFile = path.join(__dirname,"example-cinema-src.json");
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
exports.middleware = function(req, res, next) {
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
    'use strict';
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    if (req.url !== '/simple-persist') {
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
      return next();
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    }
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    res.setHeader('Content-Type', 'application/json; charset=utf-8');
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    res.statusCode = 200;
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    if(req.method === "PUT") {
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
      req.pipe(fs.createWriteStream(jsonFile));
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
      res.end(JSON.stringify({result: "OK"}));
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    }
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    else {
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
      var params = require('url').parse(req.url),
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
          readStream;
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
      if('reset' in params && params.reset) {
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
        readStream = fs.createReadStream(resetFile);
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
        readStream.pipe(fs.createWriteStream(jsonFile));
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
      }
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
      else {
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        readStream = fs.createReadStream(jsonFile);
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
        readStream.on('error',function() {
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
          var srcFile = fs.createReadStream(resetFile);
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
          srcFile.pipe(fs.createWriteStream(jsonFile));
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
          srcFile.pipe(res);
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        });
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
      }
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
      readStream.pipe(res);
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
    }
bcac9ea07d04 add simple-persist in grunt connect
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
};