Class: TrailerVote::Api::Place::Find

Inherits:
Object
  • Object
show all
Includes:
Composable::Get
Defined in:
lib/trailer_vote/api/place/find.rb,
lib/trailer_vote/api/place/create.rb,
lib/trailer_vote/api/place/children.rb

Constant Summary collapse

SUCCESS =
MediaTypes::Place.to_constructable.version(3)
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.



25
26
27
28
# File 'lib/trailer_vote/api/place/find.rb', line 25

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

Instance Method Details

#backTrailerVote::Api::Configuration, TrailerVote::Api::Place::Create



31
32
33
34
35
# File 'lib/trailer_vote/api/place/find.rb', line 31

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

#call(url: resolve_url) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/trailer_vote/api/place/find.rb', line 37

def call(url: resolve_url)
  return self if ok? || !url

  guard_network_errors do
    branch(resolve_client.headers(Headers::ACCEPT => ACCEPT).get(url))
  end
end

#childrenTrailerVote::Api::Product::Children

Returns api to deal with a place’s children.

Returns:

  • (TrailerVote::Api::Product::Children)

    api to deal with a place’s children



11
12
13
# File 'lib/trailer_vote/api/place/children.rb', line 11

def children
  Children.new(configuration: configuration, place: self)
end

#createTrailerVote::Api::Place::Create

Returns the api to create a child place.

Returns:



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

def create
  Create.new(configuration: configuration, place: self)
end

#dataObject



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

def data
  to_h[:place]
end

#parentObject



53
54
55
56
# File 'lib/trailer_vote/api/place/find.rb', line 53

def parent
  Find.new(configuration: configuration)
      .call(url: links.parent)
end

#resolve_urlObject



45
46
47
# File 'lib/trailer_vote/api/place/find.rb', line 45

def resolve_url
  configuration.links.place
end