class Bannerbear::Client
Constants
- BB_API_ENDPOINT
- BB_API_ENDPOINT_SYNCHRONOUS
Public Class Methods
new(api_key = nil)
click to toggle source
# File lib/bannerbear/client.rb, line 5 def initialize(api_key = nil) @api_key = api_key || ENV["BANNERBEAR_API_KEY"] end
Public Instance Methods
account()
click to toggle source
# File lib/bannerbear/client.rb, line 9 def account get_response "/account" end
create_animated_gif(uid, payload = {})
click to toggle source
# File lib/bannerbear/client.rb, line 91 def create_animated_gif(uid, payload = {}) post_response "/animated_gifs", payload.slice(:frames, :input_media_url, :webhook_url, :metadata, :loop, :frame_durations, :fps).merge({:template => uid}) end
create_collection(uid, payload = {})
click to toggle source
# File lib/bannerbear/client.rb, line 63 def create_collection(uid, payload = {}) post_response "/collections", payload.slice(:modifications, :webhook_url, :transparent, :metadata).merge({:template_set => uid}), payload[:synchronous] end
create_image(uid, payload = {})
click to toggle source
# File lib/bannerbear/client.rb, line 31 def create_image(uid, payload = {}) post_response "/images", payload.slice(:modifications, :webhook_url, :transparent, :render_pdf, :metadata).merge({:template => uid}), payload[:synchronous] end
create_movie(payload = {})
click to toggle source
# File lib/bannerbear/client.rb, line 105 def create_movie(payload = {}) post_response "/movies", payload.slice(:width, :height, :inputs, :transition, :soundtrack_url, :webhook_url, :metadata) end
create_screenshot(url, payload = {})
click to toggle source
# File lib/bannerbear/client.rb, line 77 def create_screenshot(url, payload = {}) post_response "/screenshots", payload.slice(:width, :height, :mobile, :webhook_url).merge({:url => url}), payload[:synchronous] end
create_video(uid, payload = {})
click to toggle source
# File lib/bannerbear/client.rb, line 45 def create_video(uid, payload = {}) post_response "/videos", payload.slice(:input_media_url, :modifications, :blur, :trim_to_length_in_seconds, :webhook_url, :metadata, :frames, :frame_durations, :create_gif_preview).merge({:video_template => uid}) end
effects()
click to toggle source
# File lib/bannerbear/client.rb, line 17 def effects get_response "/effects" end
fonts()
click to toggle source
# File lib/bannerbear/client.rb, line 13 def fonts get_response "/fonts" end
generate_signed_url(base_id, params = {})
click to toggle source
Signed URLS
# File lib/bannerbear/client.rb, line 146 def generate_signed_url(base_id, params = {}) base = "https://ondemand.bannerbear.com/signedurl/#{base_id}/image.jpg" query = "?modifications=" + Base64.urlsafe_encode64(params[:modifications].to_json, :padding => false) signature = OpenSSL::HMAC.hexdigest("SHA256", @api_key, base + query) return base + query + "&s=" + signature end
get_animated_gif(uid)
click to toggle source
Animated Gifs
# File lib/bannerbear/client.rb, line 83 def get_animated_gif(uid) get_response "/animated_gifs/#{uid}" end
get_collection(uid)
click to toggle source
Collections
# File lib/bannerbear/client.rb, line 55 def get_collection(uid) get_response "/collections/#{uid}" end
get_image(uid)
click to toggle source
Images
# File lib/bannerbear/client.rb, line 23 def get_image(uid) get_response "/images/#{uid}" end
get_movie(uid)
click to toggle source
Movies
# File lib/bannerbear/client.rb, line 97 def get_movie(uid) get_response "/movies/#{uid}" end
get_screenshot(uid)
click to toggle source
Screenshots
# File lib/bannerbear/client.rb, line 69 def get_screenshot(uid) get_response "/screenshots/#{uid}" end
get_template(uid)
click to toggle source
Templates
# File lib/bannerbear/client.rb, line 112 def get_template(uid) get_response "/templates/#{uid}" end
get_template_set(uid)
click to toggle source
Template Sets
# File lib/bannerbear/client.rb, line 126 def get_template_set(uid) get_response "/template_sets/#{uid}" end
get_video(uid)
click to toggle source
Videos
# File lib/bannerbear/client.rb, line 37 def get_video(uid) get_response "/videos/#{uid}" end
get_video_template(uid)
click to toggle source
Video Templates
# File lib/bannerbear/client.rb, line 136 def get_video_template(uid) get_response "/video_templates/#{uid}" end
list_animated_gifs(params = {})
click to toggle source
# File lib/bannerbear/client.rb, line 87 def list_animated_gifs(params = {}) get_response "/animated_gifs?#{URI.encode_www_form(params.slice(:page))}" end
list_collections(params = {})
click to toggle source
# File lib/bannerbear/client.rb, line 59 def list_collections(params = {}) get_response "/collections?#{URI.encode_www_form(params.slice(:page))}" end
list_images(params = {})
click to toggle source
# File lib/bannerbear/client.rb, line 27 def list_images(params = {}) get_response "/images?#{URI.encode_www_form(params.slice(:page, :limit))}" end
list_movies(params = {})
click to toggle source
# File lib/bannerbear/client.rb, line 101 def list_movies(params = {}) get_response "/movies?#{URI.encode_www_form(params.slice(:page))}" end
list_screenshots(params = {})
click to toggle source
# File lib/bannerbear/client.rb, line 73 def list_screenshots(params = {}) get_response "/screenshots?#{URI.encode_www_form(params.slice(:page))}" end
list_template_sets(params = {})
click to toggle source
# File lib/bannerbear/client.rb, line 130 def list_template_sets(params = {}) get_response "/template_sets?#{URI.encode_www_form(params.slice(:page))}" end
list_templates(params = {})
click to toggle source
# File lib/bannerbear/client.rb, line 120 def list_templates(params = {}) get_response "/templates?#{URI.encode_www_form(params.slice(:page, :tag, :limit, :name))}" end
list_video_templates(params = {})
click to toggle source
# File lib/bannerbear/client.rb, line 140 def list_video_templates(params = {}) get_response "/video_templates?#{URI.encode_www_form(params.slice(:page))}" end
list_videos(params = {})
click to toggle source
# File lib/bannerbear/client.rb, line 41 def list_videos(params = {}) get_response "/videos?#{URI.encode_www_form(params.slice(:page))}" end
update_template(uid, payload = {})
click to toggle source
# File lib/bannerbear/client.rb, line 116 def update_template(uid, payload = {}) patch_response "/templates/#{uid}", payload.slice(:name, :metadata, :tags) end
update_video(uid, payload = {})
click to toggle source
# File lib/bannerbear/client.rb, line 49 def update_video(uid, payload = {}) patch_response "/videos", payload.slice(:transcription, :approved).merge({:uid => uid}) end
Private Instance Methods
get_response(url)
click to toggle source
# File lib/bannerbear/client.rb, line 159 def get_response(url) response = HTTParty.get("#{BB_API_ENDPOINT}#{url}", timeout: 3, headers: { 'Authorization' => "Bearer #{@api_key}" }) body = JSON.parse(response.body) return {"error" => body['message'], "code" => response.code} if response.code >= 400 return body end
patch_response(url, payload)
click to toggle source
# File lib/bannerbear/client.rb, line 166 def patch_response(url, payload) response = HTTParty.patch("#{BB_API_ENDPOINT}#{url}", body: payload.to_json, timeout: 5, headers: { 'Authorization' => "Bearer #{@api_key}", 'Content-Type' => 'application/json' } ) body = JSON.parse(response.body) return {"error" => body['message'], "code" => response.code} if response.code >= 400 return body end
post_response(url, payload, sync = false)
click to toggle source
# File lib/bannerbear/client.rb, line 180 def post_response(url, payload, sync = false) endpoint = BB_API_ENDPOINT timeout = 5 if sync == true endpoint = BB_API_ENDPOINT_SYNCHRONOUS timeout = 15 end response = HTTParty.post("#{endpoint}#{url}", body: payload.to_json, timeout: timeout, headers: { 'Authorization' => "Bearer #{@api_key}", 'Content-Type' => 'application/json' } ) body = JSON.parse(response.body) return {"error" => body['message'], "code" => response.code} if response.code >= 400 return body end