From f48e7eb421e23f247a9010b2ab5f164fa1c7f3da Mon Sep 17 00:00:00 2001 From: Yohei Yasukawa Date: Tue, 17 May 2022 17:06:38 +0900 Subject: [PATCH] Add internal Dojo API to make news easier MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 下記お知らせ記事の「寄贈先の CoderDojo 一覧」を簡単に作りたい。 与えられた Dojo 名と一致した Dojo のリンク付きテキストを返し、 今後同様のセクションを作るときは本 API で Dojo 一覧のリストを用意する。 「CoderDojo 一覧」が用意されているお知らせ記事の例 https://news.coderdojo.jp/2022/05/16/1500-microbits-to-coderdojo/ --- app/controllers/dojos_controller.rb | 21 +++++++++++++++++++++ config/routes.rb | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 app/controllers/dojos_controller.rb diff --git a/app/controllers/dojos_controller.rb b/app/controllers/dojos_controller.rb new file mode 100644 index 000000000..2c01452ba --- /dev/null +++ b/app/controllers/dojos_controller.rb @@ -0,0 +1,21 @@ +class DojosController < ApplicationController + def index + @dojo_data = [] + Dojo.active.each do |dojo| + @dojo_data << { + name: dojo.name, + url: dojo.url, + prefecture: dojo.prefecture.region, + linked_text: "'#{dojo.name}(#{dojo.prefecture.region})", + } + end + + respond_to do |format| + format.json { render json: @dojo_data } + + # No corresponding View for now. + # Only for API: GET /dojos.json + format.html { redirect_to root_url(anchor: 'dojos') } + end + end +end diff --git a/config/routes.rb b/config/routes.rb index 875b30705..69f00c397 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -51,7 +51,7 @@ get "/kata" => "docs#kata" #get "/debug/kata" => "docs#kata" - + resources :dojos, only: %i(index) # Only API: GET /dojos.json resources :docs, only: %i(index show) resources :podcasts, only: %i(index show) resources :spaces, only: %i(index)