Class: TrailerVote::Api::Product::Find

Inherits:
Object
  • Object
show all
Includes:
Composable::Get
Defined in:
lib/trailer_vote/api/product/find.rb,
lib/trailer_vote/api/product/image.rb,
lib/trailer_vote/api/product/place.rb,
lib/trailer_vote/api/product/video.rb,
lib/trailer_vote/api/product/update.rb

Constant Summary collapse

SUCCESS =
MediaTypes::Product.to_constructable.version(2)
FAILURE =
MediaTypes::Errors.to_constructable.version(1)
ACCEPT =
[SUCCESS.to_s, FAILURE.to_s(0.1)].join(', ').freeze

Instance Method Summary collapse

Methods included from Composable::Get

#etag, included, #links, #to_h, #to_i

Constructor Details

#initialize(configuration:, result: nil) ⇒ Find

Returns a new instance of Find.



26
27
28
29
# File 'lib/trailer_vote/api/product/find.rb', line 26

def initialize(configuration:, result: nil)
  self.configuration = configuration
  self.result = result
end

Instance Method Details

#backTrailerVote::Api::Product::Find, ...

Return the api that yielded this



36
37
38
39
40
# File 'lib/trailer_vote/api/product/find.rb', line 36

def back
  backtrack = result
  backtrack = result.back while backtrack&.is_a?(self.class)
  backtrack
end

#call(url: nil, data: nil) ⇒ Object



42
43
44
45
46
47
# File 'lib/trailer_vote/api/product/find.rb', line 42

def call(url: nil, data: nil)
  return self if ok? || !url
  guard_network_errors do
    branch(resolve_client.headers(Headers::ACCEPT => ACCEPT).get(url), data: data)
  end
end

#dataObject



49
50
51
# File 'lib/trailer_vote/api/product/find.rb', line 49

def data
  to_h[:product]
end

#imageTrailerVote::Api::Product::Image Also known as: product_image, images

Returns api to deal with a product’s images.

Returns:



11
12
13
# File 'lib/trailer_vote/api/product/image.rb', line 11

def image
  Image.new(configuration: configuration, product: self)
end

#placeTrailerVote::Api::Place Also known as: product_place, places

Returns api to deal with a product’s places.

Returns:



13
14
15
# File 'lib/trailer_vote/api/product/place.rb', line 13

def place
  Place.new(configuration: configuration, product: self)
end

#updateTrailerVote::Api::Product::Update

Returns api to deal with a updating a found product.

Returns:



13
14
15
# File 'lib/trailer_vote/api/product/update.rb', line 13

def update
  Update.new(configuration: configuration, product: self)
end

#videoTrailerVote::Api::Product::Video Also known as: product_video, videos

Returns api to deal with a product’s videos.

Returns:



11
12
13
# File 'lib/trailer_vote/api/product/video.rb', line 11

def video
  Video.new(configuration: configuration, product: self)
end