diff --git a/app/controllers/api/v1/parks/alerts_controller.rb b/app/controllers/api/v1/parks/alerts_controller.rb new file mode 100644 index 0000000..122a9d8 --- /dev/null +++ b/app/controllers/api/v1/parks/alerts_controller.rb @@ -0,0 +1,4 @@ +module Api::V1::Parks + class AlertsController < BaseController + end +end diff --git a/app/controllers/api/v1/parks/base_controller.rb b/app/controllers/api/v1/parks/base_controller.rb new file mode 100644 index 0000000..f250bb2 --- /dev/null +++ b/app/controllers/api/v1/parks/base_controller.rb @@ -0,0 +1,12 @@ +module Api::V1::Parks + class BaseController < ApplicationController + before_action :set_park + + private + + def set_park + @park = Park.find_by(code: params[:park_code]) + head :not_found unless @park.present? + end + end +end diff --git a/config/routes.rb b/config/routes.rb index 8b85eb2..3562189 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,7 +1,9 @@ Rails.application.routes.draw do namespace :api do namespace :v1 do - resources :parks, only: %i[index show], param: :code + resources :parks, only: %i[index show], param: :code do + resources :alerts, only: %i[index] + end end end # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html diff --git a/spec/requests/api/v1/parks/alerts_spec.rb b/spec/requests/api/v1/parks/alerts_spec.rb new file mode 100644 index 0000000..1c982d9 --- /dev/null +++ b/spec/requests/api/v1/parks/alerts_spec.rb @@ -0,0 +1,7 @@ +require 'rails_helper' + +RSpec.describe "Api::V1::Parks::Alerts", type: :request do + describe "GET /parks/:code/alerts" do + pending "add some examples (or delete) #{__FILE__}" + end +end