Class: Ittybit::AsyncMediaClient
- Inherits:
-
Object
- Object
- Ittybit::AsyncMediaClient
- Defined in:
- lib/ittybit/media/client.rb
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#create(title: nil, alt: nil, metadata: nil, request_options: nil) ⇒ Ittybit::Media::MediaCreateResponse
Creates a new media item.
-
#delete(id:, request_options: nil) ⇒ Ittybit::Media::MediaDeleteResponse
Permanently removes a media object from the system.
-
#get(id:, request_options: nil) ⇒ Ittybit::Media::MediaGetResponse
Retrieves the media object for a media with the given ID.
- #initialize(request_client:) ⇒ Ittybit::AsyncMediaClient constructor
-
#list(page: nil, limit: nil, request_options: nil) ⇒ Ittybit::MEDIA_LIST_RESPONSE
Retrieves a paginated list of all media for the current project.
-
#update(id:, title: nil, alt: nil, metadata: nil, request_options: nil) ⇒ Ittybit::Media::MediaUpdateResponse
Updates a media object’s ‘title`, `alt`, or `metadata`.
Constructor Details
#initialize(request_client:) ⇒ Ittybit::AsyncMediaClient
225 226 227 |
# File 'lib/ittybit/media/client.rb', line 225 def initialize(request_client:) @request_client = request_client end |
Instance Attribute Details
#request_client ⇒ Ittybit::AsyncRequestClient (readonly)
221 222 223 |
# File 'lib/ittybit/media/client.rb', line 221 def request_client @request_client end |
Instance Method Details
#create(title: nil, alt: nil, metadata: nil, request_options: nil) ⇒ Ittybit::Media::MediaCreateResponse
Creates a new media item. See [Media Object](/docs/media) for more details.
286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 |
# File 'lib/ittybit/media/client.rb', line 286 def create(title: nil, alt: nil, metadata: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req..timeout = .timeout_in_seconds unless &.timeout_in_seconds.nil? req.headers["Authorization"] = .api_key unless &.api_key.nil? req.headers["ACCEPT_VERSION"] = .version unless &.version.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}), "Accept-Version": "2025-08-20" }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end req.body = { **(&.additional_body_parameters || {}), title: title, alt: alt, metadata: }.compact req.url "#{@request_client.get_url(request_options: request_options)}/media" end Ittybit::Media::MediaCreateResponse.from_json(json_object: response.body) end end |
#delete(id:, request_options: nil) ⇒ Ittybit::Media::MediaDeleteResponse
Permanently removes a media object from the system. This action cannot be
undone.
362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 |
# File 'lib/ittybit/media/client.rb', line 362 def delete(id:, request_options: nil) Async do response = @request_client.conn.delete do |req| req..timeout = .timeout_in_seconds unless &.timeout_in_seconds.nil? req.headers["Authorization"] = .api_key unless &.api_key.nil? req.headers["ACCEPT_VERSION"] = .version unless &.version.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}), "Accept-Version": "2025-08-20" }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end unless .nil? || &.additional_body_parameters.nil? req.body = { **(&.additional_body_parameters || {}) }.compact end req.url "#{@request_client.get_url(request_options: request_options)}/media/#{id}" end Ittybit::Media::MediaDeleteResponse.from_json(json_object: response.body) end end |
#get(id:, request_options: nil) ⇒ Ittybit::Media::MediaGetResponse
Retrieves the media object for a media with the given ID.
325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 |
# File 'lib/ittybit/media/client.rb', line 325 def get(id:, request_options: nil) Async do response = @request_client.conn.get do |req| req..timeout = .timeout_in_seconds unless &.timeout_in_seconds.nil? req.headers["Authorization"] = .api_key unless &.api_key.nil? req.headers["ACCEPT_VERSION"] = .version unless &.version.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}), "Accept-Version": "2025-08-20" }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end unless .nil? || &.additional_body_parameters.nil? req.body = { **(&.additional_body_parameters || {}) }.compact end req.url "#{@request_client.get_url(request_options: request_options)}/media/#{id}" end Ittybit::Media::MediaGetResponse.from_json(json_object: response.body) end end |
#list(page: nil, limit: nil, request_options: nil) ⇒ Ittybit::MEDIA_LIST_RESPONSE
Retrieves a paginated list of all media for the current project.
242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 |
# File 'lib/ittybit/media/client.rb', line 242 def list(page: nil, limit: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req..timeout = .timeout_in_seconds unless &.timeout_in_seconds.nil? req.headers["Authorization"] = .api_key unless &.api_key.nil? req.headers["ACCEPT_VERSION"] = .version unless &.version.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}), "Accept-Version": "2025-08-20" }.compact req.params = { **(&.additional_query_parameters || {}), "page": page, "limit": limit }.compact unless .nil? || &.additional_body_parameters.nil? req.body = { **(&.additional_body_parameters || {}) }.compact end req.url "#{@request_client.get_url(request_options: request_options)}/media" end parsed_json = JSON.parse(response.body) parsed_json&.map do |item| item = item.to_json Ittybit::MediaListResponseItem.from_json(json_object: item) end end end |
#update(id:, title: nil, alt: nil, metadata: nil, request_options: nil) ⇒ Ittybit::Media::MediaUpdateResponse
Updates a media object’s ‘title`, `alt`, or `metadata`. Only the specified
fields will be updated.
407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 |
# File 'lib/ittybit/media/client.rb', line 407 def update(id:, title: nil, alt: nil, metadata: nil, request_options: nil) Async do response = @request_client.conn.patch do |req| req..timeout = .timeout_in_seconds unless &.timeout_in_seconds.nil? req.headers["Authorization"] = .api_key unless &.api_key.nil? req.headers["ACCEPT_VERSION"] = .version unless &.version.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}), "Accept-Version": "2025-08-20" }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end req.body = { **(&.additional_body_parameters || {}), title: title, alt: alt, metadata: }.compact req.url "#{@request_client.get_url(request_options: request_options)}/media/#{id}" end Ittybit::Media::MediaUpdateResponse.from_json(json_object: response.body) end end |