var app    = require('express')();
var assert = require('assert');
var http   = require('http');
var through = require('through');
var logfmt  = require('../logfmt');

app.use(logfmt.bodyParserStream());

app.post('/logs', function(req, res){
  if(!req.body) return res.send('OK');

  req.body.pipe(through(function(line){
    try {
      console.log(line);
      if(line.at === 'error'){
        assert.equal('H12', line.code)
        assert.equal('50.17.15.69', line.fwd)
      }else{
        assert.equal("bar", line["foo"])
        assert.equal(14, line.a)
        assert.equal("hello kitty", line['baz'])
        assert.equal('bro', line['cool%story'])
        assert.equal(true, line.f)
        assert.equal(true, line['%^asdf'])
      }
    } catch (e) {
      console.log(e)
      res.send('FAIL')
    }
  }, end))

  function end() { res.send('OK') }
})

http.createServer(app).listen(3000);
console.log("Express server listening on port 3000")