class OrbitFeedbackNotifier

Public Class Methods

call(feedback) click to toggle source
# File lib/nexmo_developer/app/services/orbit_feedback_notifier.rb, line 2
def self.call(feedback)
  new(feedback).post!
end
new(feedback) click to toggle source
# File lib/nexmo_developer/app/services/orbit_feedback_notifier.rb, line 6
def initialize(feedback)
  @feedback = feedback
end

Public Instance Methods

params() click to toggle source
# File lib/nexmo_developer/app/services/orbit_feedback_notifier.rb, line 10
def params
  @params ||= {
    id: @feedback.id,
    email: @feedback.owner.email,
    resource: "Offered #{@feedback.sentiment} feedback on #{@feedback.resource.uri}",
  }
end
post!() click to toggle source
# File lib/nexmo_developer/app/services/orbit_feedback_notifier.rb, line 22
def post!
  return unless ENV['ORBIT_WORKSPACE_ID']

  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  req = Net::HTTP::Post.new(uri)
  req['Accept'] = 'application/json'
  req['Content-Type'] = 'application/json'
  req['Authorization'] = "Bearer #{ENV['ORBIT_API_KEY']}"

  req.body = {
    activity: {
      activity_type: 'adp:feedback',
      key: "adp-feedback-#{params[:id]}",
      title: 'Offered feedback on ADP',
      description: params[:resource],
      occurred_at: Time.zone.now.iso8601,
    },
    identity: {
      source: 'email',
      email: params[:email],
    },
  }

  req.body = req.body.to_json

  http.request(req)
end
uri() click to toggle source
# File lib/nexmo_developer/app/services/orbit_feedback_notifier.rb, line 18
def uri
  @uri ||= URI("https://app.orbit.love/api/v1/#{ENV['ORBIT_WORKSPACE_ID']}/activities")
end