Skip to content

Commit 36f9480

Browse files
committed
feat(matrix): add simple ui
1 parent 6925dcb commit 36f9480

File tree

4 files changed

+104
-0
lines changed

4 files changed

+104
-0
lines changed

lib/pact_broker/ui/app.rb

+5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
require 'pact_broker/ui/controllers/relationships'
22
require 'pact_broker/ui/controllers/groups'
3+
require 'pact_broker/ui/controllers/matrix'
34
require 'pact_broker/doc/controllers/app'
45

56
module PactBroker
@@ -21,6 +22,10 @@ def initialize
2122
run PactBroker::Doc::Controllers::App
2223
end
2324

25+
map "/the-matrix" do
26+
run PactBroker::UI::Controllers::Matrix
27+
end
28+
2429
map "/" do
2530
run PactBroker::UI::Controllers::Relationships
2631
end
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
require 'pact_broker/ui/controllers/base_controller'
2+
require 'pact_broker/ui/view_models/matrix_line'
3+
require 'haml'
4+
5+
module PactBroker
6+
module UI
7+
module Controllers
8+
class Matrix < Base
9+
10+
include PactBroker::Services
11+
12+
get "/provider/:provider_name/consumer/:consumer_name" do
13+
lines = matrix_service.find consumer_name: params[:consumer_name], provider_name: params[:provider_name]
14+
lines = lines.collect{|line| PactBroker::UI::ViewDomain::MatrixLine.new(line)}
15+
locals = {
16+
lines: lines,
17+
title: "The Matrix",
18+
consumer_name: params[:consumer_name],
19+
provider_name: params[:provider_name]
20+
}
21+
haml :'matrix/show', {locals: locals, layout: :'layouts/main'}
22+
end
23+
24+
end
25+
end
26+
end
27+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
require 'pact_broker/api/pact_broker_urls'
2+
require 'pact_broker/ui/helpers/url_helper'
3+
require 'pact_broker/date_helper'
4+
5+
module PactBroker
6+
module UI
7+
module ViewDomain
8+
class MatrixLine
9+
10+
include PactBroker::Api::PactBrokerUrls
11+
12+
def initialize line
13+
@line = line
14+
end
15+
16+
def consumer_version_number
17+
@line[:consumer_version_number]
18+
end
19+
20+
def provider_version_number
21+
@line[:provider_version]
22+
end
23+
24+
def verification_status
25+
case @line[:success]
26+
when true then "Verified"
27+
when false then "Failed"
28+
else ''
29+
end
30+
end
31+
32+
def verification_status_class
33+
case @line[:success]
34+
when true then 'success'
35+
when false then 'danger'
36+
else ''
37+
end
38+
end
39+
end
40+
end
41+
end
42+
end
+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
%body
2+
%link{rel: 'stylesheet', href: '/css/bootstrap.min.css'}
3+
%link{rel: 'stylesheet', href: '/stylesheets/relationships.css'}
4+
%script{type: 'text/javascript', src:'/javascripts/jquery-2.1.1.min.js'}
5+
%script{type: 'text/javascript', src:'/javascripts/jquery.tablesorter.min.js'}
6+
%script{type: 'text/javascript', src:'/js/bootstrap.min.js'}
7+
8+
.container
9+
%h1.page-header
10+
= title
11+
%table.table.table-bordered.table-striped{id: 'relationships'}
12+
%thead
13+
%th.consumer
14+
= "#{consumer_name} version"
15+
%span.glyphicon.glyphicon-sort.sort
16+
%th.provider
17+
= "#{provider_name} version"
18+
%span.glyphicon.glyphicon-sort.sort
19+
%th.verification-result
20+
Verification
21+
%tbody
22+
- lines.each do | line |
23+
%tr
24+
%td.consumer-version
25+
= line.consumer_version_number
26+
%td.provider
27+
= line.provider_version_number
28+
%td.verification-result{class: line.verification_status_class}
29+
= line.verification_status
30+

0 commit comments

Comments
 (0)