Class: ShopsavvyDataApi::APIResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/shopsavvy_data_api/models.rb

Overview

Standard API response wrapper

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response_data, data_class: nil) ⇒ APIResponse

Returns a new instance of APIResponse.



391
392
393
394
395
396
397
398
399
400
401
# File 'lib/shopsavvy_data_api/models.rb', line 391

def initialize(response_data, data_class: nil)
  @success = response_data["success"]
  @message = response_data["message"]
  @meta = response_data["meta"] ? APIMeta.new(response_data["meta"]) : nil

  @data = if data_class && response_data["data"]
            parse_data(response_data["data"], data_class)
          else
            response_data["data"]
          end
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



389
390
391
# File 'lib/shopsavvy_data_api/models.rb', line 389

def data
  @data
end

#messageObject (readonly)

Returns the value of attribute message.



389
390
391
# File 'lib/shopsavvy_data_api/models.rb', line 389

def message
  @message
end

#metaObject (readonly)

Returns the value of attribute meta.



389
390
391
# File 'lib/shopsavvy_data_api/models.rb', line 389

def meta
  @meta
end

#successObject (readonly)

Returns the value of attribute success.



389
390
391
# File 'lib/shopsavvy_data_api/models.rb', line 389

def success
  @success
end

Instance Method Details

#credits_remainingObject



407
408
409
# File 'lib/shopsavvy_data_api/models.rb', line 407

def credits_remaining
  meta&.credits_remaining || 0
end

#credits_usedObject



403
404
405
# File 'lib/shopsavvy_data_api/models.rb', line 403

def credits_used
  meta&.credits_used || 0
end

#failure?Boolean

Returns:

  • (Boolean)


415
416
417
# File 'lib/shopsavvy_data_api/models.rb', line 415

def failure?
  !success?
end

#success?Boolean

Returns:

  • (Boolean)


411
412
413
# File 'lib/shopsavvy_data_api/models.rb', line 411

def success?
  success == true
end

#to_hObject



419
420
421
422
423
424
425
426
# File 'lib/shopsavvy_data_api/models.rb', line 419

def to_h
  {
    success: success,
    data: data.respond_to?(:to_h) ? data.to_h : data,
    message: message,
    meta: meta&.to_h
  }
end