class BookableCloud::ApiClient
Public Class Methods
new(config)
click to toggle source
class Response
attr_reader :json, :success def initialize(success: true, json: nil) @success = success @json = json end
end
# File lib/bookable_cloud/api_client.rb, line 17 def initialize(config) @config = config end
Public Instance Methods
base_url()
click to toggle source
# File lib/bookable_cloud/api_client.rb, line 25 def base_url tenant_url.to_s + "/admin" end
get_asset(asset)
click to toggle source
# File lib/bookable_cloud/api_client.rb, line 50 def get_asset(asset) json = get_json "/themes/#{@config["theme_id"]}/assets.json", params: { key: asset } json["asset"] end
get_theme()
click to toggle source
# File lib/bookable_cloud/api_client.rb, line 29 def get_theme uri = URI.parse(base_url + "/themes/#{@config["theme_id"]}.json") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = Net::HTTP::Get.new(uri.request_uri) request["Authorization"] = "Bearer #{@config["access_token"]}" http.request(request) end
list_assets()
click to toggle source
# File lib/bookable_cloud/api_client.rb, line 42 def list_assets json = get_json "/themes/#{@config["theme_id"]}/assets.json" if assets = json["assets"] assets.collect { |asset| asset["key"] } end end
tenant_url()
click to toggle source
# File lib/bookable_cloud/api_client.rb, line 21 def tenant_url @config["tenant_url"] end
update_asset(key, body)
click to toggle source
# File lib/bookable_cloud/api_client.rb, line 56 def update_asset(key, body) json = put_json "/themes/#{@config["theme_id"]}/assets.json", params: { "asset[key]" => key, "asset[value]" => body } end
Private Instance Methods
get_json(url, params: nil)
click to toggle source
# File lib/bookable_cloud/api_client.rb, line 65 def get_json(url, params: nil) uri = URI.parse(base_url + url) uri.query = URI.encode_www_form(params) if params http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = Net::HTTP::Get.new(uri.request_uri) request["Authorization"] = "Bearer #{@config["access_token"]}" response = http.request(request) JSON.parse(response.body) end
put_json(url, params: nil)
click to toggle source
# File lib/bookable_cloud/api_client.rb, line 80 def put_json(url, params: nil) uri = URI.parse(base_url + url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = Net::HTTP::Put.new(uri.request_uri) request.set_form_data(params) if params request["Authorization"] = "Bearer #{@config["access_token"]}" response = http.request(request) # p response.body JSON.parse(response.body) end