server.coffee
author Tomas Zeman <tzeman@volny.cz>
Sat, 14 Dec 2013 21:58:38 +0100
changeset 3 0fa2f12fcb3c
parent 2 26148011541f
child 4 cbba85b1f677
permissions -rw-r--r--
/login handler; request logging via bunyan

Q = require 'q'
Http = require 'q-io/http'
Apps = require 'q-io/http-apps'
bunyan = require 'bunyan'

log = bunyan.createLogger {
  name: 'asa-test-server'
  level: 'debug'
}

route = Apps.Branch {
  'ok': (rq,rs) => {
    status: 200
    headers: {}
    data:
      result: 'ok'
      request:
        path: rq.path
        pathInfo: rq.pathInfo
      response: rs
  }
  'post': Apps.Method {
    'POST': Apps.JsonRequest((o, rq, rs) => {
      status: 200
      headers: {}
      data:
        data: o
        request:
          path: rq.path
          pathInfo: rq.pathInfo
        response: rs
    })
  }, Apps.methodNotAllowed

  'login': Apps.Method {
    'POST': Apps.JsonRequest((o, rq, rs) =>
      log.info("Login", o)
      {
        status: 200
        headers: {}
        data:
          configId: 'cfg1'
          sessionId: 'sess1'
      })
  }
}

app = Apps.Chain()
  .use(() => Apps.Log(Apps.HandleJsonResponses(route, null, "  "),
    (m) => log.info("Access: " + m)))
  .end()

Http.Server(app).listen(3000)

# vim: et ts=2 sw=2