Class: ShopsavvyDataApi::ProductSearchResult

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

Overview

Product search result with pagination

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response_data) ⇒ ProductSearchResult

Returns a new instance of ProductSearchResult.



452
453
454
455
456
457
# File 'lib/shopsavvy_data_api/models.rb', line 452

def initialize(response_data)
  @success = response_data["success"]
  @meta = response_data["meta"] ? APIMeta.new(response_data["meta"]) : nil
  @pagination = response_data["pagination"] ? PaginationInfo.new(response_data["pagination"]) : nil
  @data = (response_data["data"] || []).map { |item| ProductDetails.new(item) }
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



450
451
452
# File 'lib/shopsavvy_data_api/models.rb', line 450

def data
  @data
end

#metaObject (readonly)

Returns the value of attribute meta.



450
451
452
# File 'lib/shopsavvy_data_api/models.rb', line 450

def meta
  @meta
end

#paginationObject (readonly)

Returns the value of attribute pagination.



450
451
452
# File 'lib/shopsavvy_data_api/models.rb', line 450

def pagination
  @pagination
end

#successObject (readonly)

Returns the value of attribute success.



450
451
452
# File 'lib/shopsavvy_data_api/models.rb', line 450

def success
  @success
end

Instance Method Details

#credits_remainingObject



463
464
465
# File 'lib/shopsavvy_data_api/models.rb', line 463

def credits_remaining
  meta&.credits_remaining || 0
end

#credits_usedObject



459
460
461
# File 'lib/shopsavvy_data_api/models.rb', line 459

def credits_used
  meta&.credits_used || 0
end

#failure?Boolean

Returns:

  • (Boolean)


471
472
473
# File 'lib/shopsavvy_data_api/models.rb', line 471

def failure?
  !success?
end

#success?Boolean

Returns:

  • (Boolean)


467
468
469
# File 'lib/shopsavvy_data_api/models.rb', line 467

def success?
  success == true
end

#to_hObject



475
476
477
478
479
480
481
482
# File 'lib/shopsavvy_data_api/models.rb', line 475

def to_h
  {
    success: success,
    data: data.map(&:to_h),
    pagination: pagination&.to_h,
    meta: meta&.to_h
  }
end