conveyal/modeify

View on GitHub
client/organization/index.js

Summary

Maintainability
A
2 hrs
Test Coverage
var config = require('../config')
var defaults = require('../components/segmentio/model-defaults/0.2.0')
var log = require('../log')('organization')
var model = require('component-model')

/**
 * Expose `Organization`
 */

var Organization = module.exports = model('Organization')
  .use(defaults({
    name: '',
    contact: '',
    email: '',
    labels: []
  }))
  .use(require('../components/trevorgerhardt/model-query/0.3.0'))
  .route(config.api_url() + '/organizations')
  .attr('_id')
  .attr('name')
  .attr('contact')
  .attr('email')
  .attr('main_url')
  .attr('logo_url')
  .attr('labels')

/**
 * Load middleware
 */

Organization.load = function (ctx, next) {
  if (ctx.params.organization === 'new') return next()

  log('loading %s', ctx.params.organization)
  Organization.get(ctx.params.organization, function (err, org) {
    if (err) {
      log.error(err)
      next(err)
    } else {
      ctx.organization = org
      next()
    }
  })
}

Organization.loadAll = function (ctx, next) {
  Organization.all(function (err, orgs, res) {
    if (err || !res.ok) {
      next(err || res.text)
    } else {
      ctx.organizations = orgs
      next()
    }
  })
}