Sha256: 16b5255477cac2468cc5421914a71e6f358824e0eda55ad8bd943e729610f0c0

Contents?: true

Size: 597 Bytes

Versions: 1

Compression:

Stored size: 597 Bytes

Contents

class ThingSpeakReporter
  include UseCasePattern

  def initialize(api_key:, params: {})
    @api_key = api_key
    @params = params
  end

  def perform
    post_data
    check_response
  end

  private

  attr_reader :params, :api_key, :response

  def post_data
    uri = URI("https://api.thingspeak.com/update.json")
    @response = Net::HTTP.post_form(uri, request_params)
  end

  def check_response
    if response.code != '200'
      errors.add(:base, "Non 200 response #{response.code}: #{response.body}")
    end
  end

  def request_params
    params.merge(api_key: api_key)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
use_case_pattern-1.0.0 examples/thing_speak_reporter.rb