<%=: name | capitalize %> = require '../models/<%=: name %>'

# <%=: name | capitalize %> model's CRUD controller.
module.exports =

  # Lists all <%=: name %>s
  index: (req, res) ->
    <%=: name | capitalize %>.find {}, (err, <%=: name %>s) ->
      res.send <%=: name %>s

  # Creates new <%=: name %> with data from `req.body`
  create: (req, res) ->
    <%=: name %> = new <%=: name | capitalize %> req.body
    <%=: name %>.save (err, <%=: name %>) ->
      if not err
        res.send <%=: name %>
        res.statusCode = 201
      else
        res.send err
        res.statusCode = 500

  # Gets <%=: name %> by id
  get: (req, res) ->
    <%=: name | capitalize %>.findById req.params.id, (err, <%=: name %>) ->
      if not err
        res.send <%=: name %>
      else
        res.send err
        res.statusCode = 500

  # Updates <%=: name %> with data from `req.body`
  update: (req, res) ->
    <%=: name | capitalize %>.findByIdAndUpdate req.params.id, {"$set":req.body}, (err, <%=: name %>) ->
      if not err
        res.send <%=: name %>
      else
        res.send err
        res.statusCode = 500

  # Deletes <%=: name %> by id
  delete: (req, res) ->
    <%=: name | capitalize %>.findByIdAndRemove req.params.id, (err) ->
      if not err
        res.send {}
      else
        res.send err
        res.statusCode = 500
