@@ -52,14 +52,15 @@ def matrix(base_url)
52
52
provider = OpenStruct . new ( name : line . provider_name )
53
53
consumer = OpenStruct . new ( name : line . consumer_name )
54
54
consumer_version = OpenStruct . new ( number : line . consumer_version_number , pacticipant : consumer )
55
- line_hash ( consumer , provider , consumer_version , line , base_url )
55
+ provider_version = line . provider_version_number ? OpenStruct . new ( number : line . provider_version_number , pacticipant : provider ) : nil
56
+ line_hash ( consumer , provider , consumer_version , provider_version , line , base_url )
56
57
end
57
58
end
58
59
59
- def line_hash ( consumer , provider , consumer_version , line , base_url )
60
+ def line_hash ( consumer , provider , consumer_version , provider_version , line , base_url )
60
61
{
61
62
consumer : consumer_hash ( line , consumer , consumer_version , base_url ) ,
62
- provider : provider_hash ( line , provider , base_url ) ,
63
+ provider : provider_hash ( line , provider , provider_version , base_url ) ,
63
64
pact : pact_hash ( line , base_url ) ,
64
65
verificationResult : verification_hash ( line , base_url )
65
66
}
@@ -74,7 +75,8 @@ def consumer_hash(line, consumer, consumer_version, base_url)
74
75
self : {
75
76
href : version_url ( base_url , consumer_version )
76
77
}
77
- }
78
+ } ,
79
+ tags : tags ( line . consumer_version_tags )
78
80
} ,
79
81
_links : {
80
82
self : {
@@ -84,7 +86,16 @@ def consumer_hash(line, consumer, consumer_version, base_url)
84
86
}
85
87
end
86
88
87
- def provider_hash ( line , provider , base_url )
89
+ def tags ( tags )
90
+ tags . collect do | tag |
91
+ {
92
+ name : tag . name ,
93
+ latest : tag . latest?
94
+ }
95
+ end
96
+ end
97
+
98
+ def provider_hash ( line , provider , provider_version , base_url )
88
99
hash = {
89
100
name : line . provider_name ,
90
101
version : nil ,
@@ -96,7 +107,15 @@ def provider_hash(line, provider, base_url)
96
107
}
97
108
98
109
if !line . provider_version_number . nil?
99
- hash [ :version ] = { number : line . provider_version_number }
110
+ hash [ :version ] = {
111
+ number : line . provider_version_number ,
112
+ _links : {
113
+ self : {
114
+ href : version_url ( base_url , provider_version )
115
+ }
116
+ } ,
117
+ tags : tags ( line . provider_version_tags )
118
+ }
100
119
end
101
120
102
121
hash
0 commit comments