class HtmlCssToImage::Image

Public Class Methods

create(html: nil, css: nil) click to toggle source
# File lib/html_css_to_image/image.rb, line 4
def create(html: nil, css: nil)
  raise ArgumentError.new "HTML and CSS are both nil"  if html.nil? && css.nil?

  response = connection.post(resources) do |request|
    request.body = { html: html.to_s, css: css.to_s }.to_json
  end

  raise Error.new(
    "Failed to create image: #{response.status} #{response.body} "
  ) if response.status != 200

  json = JSON.parse(response.body, symbolize_names: true)

  Data::Image.from(json)
end
delete(id) click to toggle source
# File lib/html_css_to_image/image.rb, line 20
def delete(id)
  raise ArgumentError.new "id is nil" if id.nil?

  response = connection.delete(resource(id))

  raise Error.new(
    "Failed to delete image #{id}: #{response.status} #{response.body}"
  ) unless [202, 404].include? response.status
end

Private Class Methods

connection() click to toggle source
# File lib/html_css_to_image/image.rb, line 32
def connection
  @connection ||= HtmlCssToImage.connection
end
resource(id) click to toggle source
# File lib/html_css_to_image/image.rb, line 42
def resource(id)
   "/#{resources}/#{id}"
end
resources() click to toggle source
# File lib/html_css_to_image/image.rb, line 38
def resources
  "#{HtmlCssToImage::API_VERSION}/image"
end