class DvelpFlow::DialogFlow::V2

Attributes

access_token[RW]
api_session_id[RW]
api_version[RW]

Public Class Methods

new(access_token:, api_session_id:) click to toggle source
# File lib/dvelp_flow/dialog_flow/v2.rb, line 6
def initialize(access_token:, api_session_id:)
  self.access_token = access_token
  self.api_session_id = api_session_id
  self.api_version = api_version
end

Public Instance Methods

event_request(event) click to toggle source
# File lib/dvelp_flow/dialog_flow/v2.rb, line 12
def event_request(event)
  data = {
    query_input: {
      event: {
        name: event,
        language_code: ENV['APIAI_LANGUAGE']
      }
    }
  }

  call(data: data, endpoint: "sessions/#{api_session_id}:detectIntent")
end
text_request(text) click to toggle source
# File lib/dvelp_flow/dialog_flow/v2.rb, line 25
def text_request(text)
  data = {
    query_input: {
      text: {
        text: text,
        language_code: ENV['APIAI_LANGUAGE']
      }
    }
  }

  call(data: data, endpoint: "sessions/#{api_session_id}:detectIntent")
end

Private Instance Methods

base_url() click to toggle source
# File lib/dvelp_flow/dialog_flow/v2.rb, line 49
def base_url
  "https://dialogflow.googleapis.com/v2beta1/projects/#{project}/agent/"
end
call(data:, endpoint:) click to toggle source
# File lib/dvelp_flow/dialog_flow/v2.rb, line 42
def call(data:, endpoint:)
  url = base_url + endpoint
  response = RestClient.post(url, data.to_json, headers)

  JSON.parse(response).deep_symbolize_keys!
end
headers() click to toggle source
# File lib/dvelp_flow/dialog_flow/v2.rb, line 57
def headers
  {
    accept: :json,
    authorization: "Bearer #{access_token}",
    content_type: :json
  }
end
project() click to toggle source
# File lib/dvelp_flow/dialog_flow/v2.rb, line 53
def project
  ENV['GCP_PROJECT_NAME']
end