bq/corbel-composr

View on GitHub
src/routes/doc.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict'

var engine = require('../lib/engine')
var ComposrError = require('composr-core').ComposrError

module.exports = function (server) {
  server.get('/doc/:domain/', serveDocumentation)
  server.get('/doc/:domain/:version/', serveDocumentation)

  function serveDocumentation (req, res, next) {
    var domain = req.params.domain || ''
    var version = req.params.version || ''

    var phrases = engine.composr.Phrase.getPhrases(domain)
    var snippets = engine.composr.Snippet.getSnippets(domain)

    engine.composr.documentation(phrases, snippets, domain, version || '', 'doc/' + domain)
      .then(function (result) {
        res.writeHead(200, {
          'Content-Length': Buffer.byteLength(result),
          'Content-Type': 'text/html'
        })
        res.write(result)
        res.end()
      })
      .catch(function (err) {
        next(new ComposrError('error:phrase:doc', 'Error generating doc: ' + err, 422))
      })
  }
}