Class: Whop_sdk::Media::Client
- Inherits:
-
Object
- Object
- Whop_sdk::Media::Client
- Defined in:
- lib/whop_sdk/media/client.rb
Instance Method Summary collapse
-
#generate(request_options: {}, **params) ⇒ Whop_sdk::Types::MediaAsset
Starts an AI media generation job billed from the account's balance.
- #initialize(client:) ⇒ void constructor
-
#retrieve(request_options: {}, **params) ⇒ Whop_sdk::Types::MediaAsset
Retrieves a media asset by ID.
Constructor Details
#initialize(client:) ⇒ void
9 10 11 |
# File 'lib/whop_sdk/media/client.rb', line 9 def initialize(client:) @client = client end |
Instance Method Details
#generate(request_options: {}, **params) ⇒ Whop_sdk::Types::MediaAsset
Starts an AI media generation job billed from the account's balance. Generation is asynchronous — poll GET /media/{id} until the asset is ready, then use file.id anywhere attachments are accepted.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/whop_sdk/media/client.rb', line 31 def generate(request_options: {}, **params) params = Whop_sdk::Internal::Types::Utils.normalize_keys(params) request = Whop_sdk::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "media/generate", body: Whop_sdk::Media::Types::GenerateMediaRequest.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Whop_sdk::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Whop_sdk::Types::MediaAsset.load(response.body) else error_class = Whop_sdk::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#retrieve(request_options: {}, **params) ⇒ Whop_sdk::Types::MediaAsset
Retrieves a media asset by ID. Poll this while the asset is processing.
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/whop_sdk/media/client.rb', line 69 def retrieve(request_options: {}, **params) params = Whop_sdk::Internal::Types::Utils.normalize_keys(params) request = Whop_sdk::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "media/#{URI.encode_uri_component(params[:id].to_s)}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Whop_sdk::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Whop_sdk::Types::MediaAsset.load(response.body) else error_class = Whop_sdk::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |