2012-02-19 2 views
1

나는 Faraday가 .rb 파일에서 Google Calander에게 POST 요청을하도록 만들었습니다. 내 앱에서이 기능을 사용하여 날짜를 선택한 후 내 사용자에게 사용 가능한 시간 슬롯 목록을 표시하기 전에 캘린더의 약속 있음/없음 응답을 확인하고 싶습니다. Faraday POST 요청을 Rails 앱과 통합했습니다. AJAX 최고?

response = Faraday.post do |req| 
req.url 'https://www.googleapis.com/calendar/v3/freeBusy?key=myapikey' 
req.headers['Content-Type'] = 'application/json' 
req.body = '{ "items": [ { "id": mycalendar } ], "timeMin": "2011-02-14T00:09:35Z", "timeMax": "2011-02-14T00:09:40Z" }' 
end 

는 그것은 약속 모델에 기능을 넣어, 다음 사용자가 날짜를 선택할 때 Ajax 호출을하는 것이 최선인가? 아니면 로컬 테이블에 모두 미리 캐시하는 것이 더 좋을까요?

도움 주셔서 감사합니다.

답변

1

첫 번째 시도 :

require 'faraday' 

class Booking < ActiveRecord::Base 

def checktime(calid) 

    response = Faraday.post do |req| 
    req.url 'https://www.googleapis.com/calendar/v3/freeBusy?key=AIzaSyBsObpXXF6DQoZWj2U9QxoEQ4vdZ6GvNfI' 
    req.headers['Content-Type'] = 'application/json' 
    req.body = "{ 'items': [ { 'id': '#{calid}' } ], 'timeMin': '2012-02-19T19:35:00Z', 'timeMax': '2012-02-19T19:40:00Z' }" 
    end 

response_json = JSON.parse response.body 

if response_json["calendars"]["busy"] == nil 
    return true 
else 
    return false 
end 

end