Class: PactBroker::UI::ViewDomain::Relationship

Inherits:
Object
  • Object
show all
Includes:
Api::PactBrokerUrls
Defined in:
lib/pact_broker/ui/view_models/relationship.rb

Instance Method Summary collapse

Methods included from Api::PactBrokerUrls

#hal_browser_url, #latest_pacts_url, #latest_verifications_for_consumer_version_url, #latest_version_url, #new_verification_url, #pact_url, #pact_url_from_params, #pact_version_url, #pact_versions_url, #pacticipant_url, #pacticipants_url, #previous_distinct_diff_url, #previous_distinct_pact_version_url, #tag_url, #tags_url, #url_encode, #verification_publication_url, #verification_url, #version_url, #versions_url, #webhook_execution_url, #webhook_url, #webhooks_for_pact_url

Constructor Details

#initialize(relationship) ⇒ Relationship

Returns a new instance of Relationship.



12
13
14
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 12

def initialize relationship
  @relationship = relationship
end

Instance Method Details

#<=>(other) ⇒ Object



87
88
89
90
91
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 87

def <=> other
  comp = consumer_name.downcase <=> other.consumer_name.downcase
  return comp unless comp == 0
  provider_name.downcase <=> other.provider_name.downcase
end

#any_webhooks?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 36

def any_webhooks?
  @relationship.any_webhooks?
end

#consumer_group_urlObject



24
25
26
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 24

def consumer_group_url
  Helpers::URLHelper.group_url consumer_name
end

#consumer_nameObject



16
17
18
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 16

def consumer_name
  @relationship.consumer_name
end

#last_verified_dateObject



45
46
47
48
49
50
51
52
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 45

def last_verified_date
  if @relationship.ever_verified?
    date = @relationship.latest_verification.execution_date
    PactBroker::DateHelper.distance_of_time_in_words(date, DateTime.now) + " ago"
  else
    ""
  end
end

#latest_pact_urlObject



32
33
34
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 32

def latest_pact_url
  "#{pactigration_base_url('', @relationship)}/latest"
end

#provider_group_urlObject



28
29
30
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 28

def provider_group_url
  Helpers::URLHelper.group_url provider_name
end

#provider_nameObject



20
21
22
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 20

def provider_name
  @relationship.provider_name
end

#publication_date_of_latest_pactObject



54
55
56
57
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 54

def publication_date_of_latest_pact
  date = @relationship.latest_pact.created_at
  PactBroker::DateHelper.distance_of_time_in_words(date, DateTime.now) + " ago"
end

#verification_statusObject



59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 59

def verification_status
  return "" unless @relationship.ever_verified?
  if @relationship.latest_verification_successful?
    if @relationship.pact_changed_since_last_verification?
      "warning"
    else
      "success"
    end
  else
    "danger"
  end
end

#verification_tooltipObject



76
77
78
79
80
81
82
83
84
85
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 76

def verification_tooltip
  return nil unless @relationship.ever_verified?
  if warning?
    "Pact has changed since last successful verification by #{provider_name} (v#{@relationship.latest_verification_provider_version})"
  elsif @relationship.latest_verification_successful?
    "Successfully verified by #{provider_name} (v#{@relationship.latest_verification_provider_version})"
  elsif !@relationship.latest_verification_successful?
    "Verification by #{provider_name} (v#{@relationship.latest_verification_provider_version}) failed"
  end
end

#warning?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 72

def warning?
  verification_status == 'warning'
end

#webhooks_urlObject



40
41
42
43
# File 'lib/pact_broker/ui/view_models/relationship.rb', line 40

def webhooks_url
  url = PactBroker::Api::PactBrokerUrls.webhooks_for_pact_url @relationship.latest_pact.consumer, @relationship.latest_pact.provider, ''
  "/hal-browser/browser.html##{url}"
end