@@ -101,19 +101,27 @@ def find_latest_verification_for consumer_name, provider_name, consumer_version_
101
101
end
102
102
103
103
def find_latest_verification_for_tags consumer_name , provider_name , consumer_version_tag , provider_version_tag
104
- view_name = PactBroker ::Verifications ::AllVerifications . table_name
105
- query = PactBroker ::Verifications ::AllVerifications
104
+ view_name = PactBroker ::Domain ::Verification . table_name
105
+ consumer = pacticipant_repository . find_by_name ( consumer_name )
106
+ provider = pacticipant_repository . find_by_name ( provider_name )
107
+
108
+ consumer_tag_filter = PactBroker ::Repositories ::Helpers . name_like ( Sequel . qualify ( :consumer_tags , :name ) , consumer_version_tag )
109
+ provider_tag_filter = PactBroker ::Repositories ::Helpers . name_like ( Sequel . qualify ( :provider_tags , :name ) , provider_version_tag )
110
+
111
+ query = PactBroker ::Domain ::Verification
106
112
. select_all_qualified
107
- . join ( :versions , { Sequel [ :provider_versions ] [ :id ] => Sequel [ view_name ] [ :provider_version_id ] } , { table_alias : :provider_versions } )
108
- . join ( :latest_pact_publications_by_consumer_versions , { Sequel [ view_name ] [ :pact_version_id ] => Sequel [ :latest_pact_publications_by_consumer_versions ] [ :pact_version_id ] } )
109
- . consumer ( consumer_name )
110
- . provider ( provider_name )
111
- . tag ( consumer_version_tag )
112
- . provider_version_tag ( provider_version_tag )
113
+ . join ( :versions , { Sequel [ :provider_versions ] [ :id ] => Sequel [ view_name ] [ :provider_version_id ] } , { table_alias : :provider_versions } )
114
+ . join ( :latest_verification_id_for_pact_version_and_provider_version , { Sequel [ :lv ] [ :verification_id ] => Sequel [ view_name ] [ :id ] } , { table_alias : :lv } )
115
+ . join ( :latest_pact_publication_ids_for_consumer_versions , { Sequel [ view_name ] [ :pact_version_id ] => Sequel [ :lp ] [ :pact_version_id ] } , { table_alias : :lp } )
116
+ . join ( :versions , { Sequel [ :consumer_versions ] [ :id ] => Sequel [ :lp ] [ :consumer_version_id ] } , { table_alias : :consumer_versions } )
117
+ . join ( :tags , { Sequel [ :consumer_tags ] [ :version_id ] => Sequel [ :lp ] [ :consumer_version_id ] } , { table_alias : :consumer_tags } )
118
+ . join ( :tags , { Sequel [ :provider_tags ] [ :version_id ] => Sequel [ view_name ] [ :provider_version_id ] } , { table_alias : :provider_tags } )
119
+ . where ( consumer : consumer , provider : provider )
120
+ . where ( consumer_tag_filter )
121
+ . where ( provider_tag_filter )
113
122
114
123
query . reverse_order (
115
- Sequel [ :latest_pact_publications_by_consumer_versions ] [ :consumer_version_order ] ,
116
- Sequel [ :latest_pact_publications_by_consumer_versions ] [ :revision_number ] ,
124
+ Sequel [ :consumer_versions ] [ :order ] ,
117
125
Sequel [ :provider_versions ] [ :order ] ,
118
126
Sequel [ view_name ] [ :execution_date ]
119
127
) . limit ( 1 ) . single_record
0 commit comments