Sha256: 2426550256b559e947ed40176e9805d955cf569197daca8f57723568a797a652
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true require 'json' require "net/http" require "uri" require "cgi" module ScreenshotOne class Client BASE_URL = "https://api.screenshotone.com" def initialize(access_key, secret_key = nil) @access_key = access_key @secret_key = secret_key end def generate_take_url(options) raise Error.new('Argument is not a ScreenshotOne::TakeOptions instance') unless options.is_a?(TakeOptions) raise Error.new('TakeOptions is not valid') unless options.valid? query = options.to_hash query[:access_key] = @access_key query_string = URI.encode_www_form(query) if @secret_key query_string << "&signature=#{OpenSSL::HMAC.hexdigest("sha256", @secret_key, query_string)}" end "#{BASE_URL}/take?#{query_string}" end def take(options) uri = URI.parse(generate_take_url(options)) res = Net::HTTP.get_response(uri) return res.body if res.is_a?(Net::HTTPSuccess) raise Error.new(res.body) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
screenshotone-0.0.2 | lib/screenshotone/client.rb |
screenshotone-0.0.1 | lib/screenshotone/client.rb |