Skip to content

Instantly share code, notes, and snippets.

@kkestell
Last active July 17, 2016 20:48
Show Gist options
  • Save kkestell/7475d8a8fd10407a1b9f35e6b9432bbe to your computer and use it in GitHub Desktop.
Save kkestell/7475d8a8fd10407a1b9f35e6b9432bbe to your computer and use it in GitHub Desktop.
class RecipesController < ApiController
before_filter do
@service = RecipeService.new
end
get :index do
presenter RecipePresenter
params do
param :name, String
param :limit_orderable, Boolean
param :limit_brew_logs, Boolean
param :limit_comments, Boolean
param :limit_reviews, Boolean
param :og_min, Float
param :og_max, Float
param :fg_min, Float
param :fg_max, Float
param :ibu_min, Integer
param :ibu_max, Integer
param :abv_min, Float
param :abv_max, Float
param :color_min, Integer
param :color_max, Integer
param :og_min, Float
param :og_max, Float
param :recipe_types, Array[Integer]
param :styles, Array[Integer]
param :fermentables, Array[Integer]
param :hops, Array[Integer]
param :yeasts, Array[Integer]
param :extras, Array[Integer]
param :page, Integer
param :results_per_page, Integer, default: 30, min: 1, max: 30
param :sort, String, values: %w(rank created_at)
param :sort_reverse, Boolean
end
request do
search = @service.search(declared)
present search.results
end
end
get :show do
presenter RecipePresenter
params do
param :id, Integer, required: true
end
request do
recipe = @service.find(declared.id)
present recipe
end
end
post :create do
presenter RecipePresenter
form RecipeForm
request do
recipe = @form.save!
present recipe
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment