Sha256: 357a38819b5272b0ea9d640ac1a9b7c663e357f68debe744c8fa1b3982d36fb2
Contents?: true
Size: 1.13 KB
Versions: 75
Compression:
Stored size: 1.13 KB
Contents
class OrbitFeedbackNotifier def self.call(feedback) new(feedback).post! end def initialize(feedback) @feedback = feedback end def params @params ||= { id: @feedback.id, email: @feedback.owner.email, resource: "Offered #{@feedback.sentiment} feedback on #{@feedback.resource.uri}", } end def uri @uri ||= URI("https://app.orbit.love/api/v1/#{ENV['ORBIT_WORKSPACE_ID']}/activities") end 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 end
Version data entries
75 entries across 75 versions & 1 rubygems