diff --git a/README.md b/README.md index b16b49a..770ecf6 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,15 @@ client_user GET /client/users/:id(.:format) PUT /client/users/:id(.:format) client/users#update DELETE /client/users/:id(.:format) client/users#destroy ``` +### ユーザーの参加イベント管理 +※Client::JoinSchedules#index ユーザーの参加イベント一覧 +※Client::JoinSchedules#show ユーザーの参加イベント詳細 +※Client::JoinSchedules#destroy イベントの参加キャンセル +``` +client_user_join_schedules GET /client/users/:user_id/join_schedules(.:format) client/join_schedules#index {:format=>:json} +client_user_join_schedule GET /client/users/:user_id/join_schedules/:id(.:format) client/join_schedules#show {:format=>:json} + DELETE /client/users/:user_id/join_schedules/:id(.:format) client/join_schedules#destroy {:format=>:json} +``` ### イベント ※パラメータはコードを読んでね ``` diff --git a/app/controllers/client/join_schedules_controller.rb b/app/controllers/client/join_schedules_controller.rb new file mode 100644 index 0000000..2b002db --- /dev/null +++ b/app/controllers/client/join_schedules_controller.rb @@ -0,0 +1,31 @@ +class Client::JoinSchedulesController < Client::ApplicationController + before_action :set_user, only: %i(index show destroy) + + def index + render json: @user.join_schedules + end + + def show + join_schedule = @user.join_schedules.find(params[:id]) + render json: join_schedule + end + + def destroy + begin + user_to_event_schedule = @user.user_to_event_schedules.find_by(event_schedule_id: params[:id]) + user_to_event_schedule.destroy + rescue => e + puts e + result = 'Error' + else + result = 'OK' + end + render json: result + end + + private + + def set_user + @user = User.with_relation.find(params[:user_id]) + end +end diff --git a/config/routes.rb b/config/routes.rb index 8521e0d..12267e2 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -41,6 +41,7 @@ Rails.application.routes.draw do namespace :client, defaults: { format: :json } do resources :users do + resources :join_schedules, only: %i(index show destroy) member do put :password end