Class: PactBroker::Tags::Repository
Instance Method Summary
collapse
#case_sensitivity_options, #mysql?, #name_like, #order_ignore_case, #postgres?, #select_all_qualified, #select_for_subquery, #upsert
Instance Method Details
#create(args) ⇒ Object
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/pact_broker/tags/repository.rb', line 11
def create args
params = {
name: args.fetch(:name),
version_id: args.fetch(:version).id,
created_at: Sequel.datetime_class.now,
updated_at: Sequel.datetime_class.now
}
Domain::Tag.dataset.insert_ignore.insert(params)
Domain::Tag.find(name: args[:name], version_id: args[:version].id)
end
|
#delete_by_version_id(version_id) ⇒ Object
33
34
35
|
# File 'lib/pact_broker/tags/repository.rb', line 33
def delete_by_version_id version_id
Domain::Tag.where(version_id: version_id).delete
end
|
#find(args) ⇒ Object
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/pact_broker/tags/repository.rb', line 22
def find args
PactBroker::Domain::Tag
.select_all_qualified
.join(:versions, { id: :version_id })
.join(:pacticipants, {Sequel.qualify("pacticipants", "id") => Sequel.qualify("versions", "pacticipant_id")})
.where(name_like(Sequel.qualify("tags", "name"), args.fetch(:tag_name)))
.where(name_like(Sequel.qualify("versions", "number"), args.fetch(:pacticipant_version_number)))
.where(name_like(Sequel.qualify("pacticipants", "name"), args.fetch(:pacticipant_name)))
.single_record
end
|
#find_all_tag_names_for_pacticipant(pacticipant_name) ⇒ Object
37
38
39
40
41
42
43
44
45
|
# File 'lib/pact_broker/tags/repository.rb', line 37
def find_all_tag_names_for_pacticipant pacticipant_name
PactBroker::Domain::Tag
.select(Sequel[:tags][:name])
.join(:versions, { Sequel[:versions][:id] => Sequel[:tags][:version_id] })
.join(:pacticipants, { Sequel[:pacticipants][:id] => Sequel[:versions][:pacticipant_id] })
.where(Sequel[:pacticipants][:name] => pacticipant_name)
.distinct
.collect{ |tag| tag[:name] }.sort
end
|