概要
前回、カレンダー API を使って予定の登録を行いました
今回は削除もしてみます
Gem の追加や新しいクラスの追加はないので必要な箇所のみコードを紹介します
環境
- Windows7 64bit
- Ruby 2.2.4p230
- gem 2.4.8
- Rails 5.0.0
- Office365 API v2.0 (2016/08/22 時点)
削除するロジックの追記
ファイル名は前回の記事のものをそのまま使っています
- vim app/controllers/calendar_controller.rb
def delete
token = get_access_token($token)
email = session[:user_email]
if token
conn = Faraday.new(:url => 'https://outlook.office.com') do |faraday|
faraday.response :logger
faraday.adapter Faraday.default_adapter
end
response = conn.delete do |req|
req.headers['Authorization'] = "Bearer #{token}"
req.headers['Content-Type'] = 'application/json'
req.url "/api/v2.0/Me/Events/#{params['event_id']}"
end
puts response.body
redirect_to calendar_url
else
redirect_to root_url
end
end
- vim views/calendar/index.html.erb
<td>
<%= form_tag("/dcal", method: "post") do %>
<%= hidden_field_tag("event_id", event['Id']) %>
<%= submit_tag("削除") %>
<% end %>
</td>
- vim config/routes.rb
post 'dcal' => 'calendar#delete'
という感じです
View で削除ボタン用のフォームを作成しています
作成するときに hidden フィールドに予定ごとに一意に振られる ID を設定します
コントローラ側でその ID を受け取り、その ID を元に削除 API をコールします
最後に
カレンダーの削除 API の使い方を紹介しました
URI に削除したい予定の ID を指定するだけなので簡単でした
当たり前ですが、メソッドは DELETE メソッドでコールしてください
0 件のコメント:
コメントを投稿