Class: PactBroker::Domain::OrderVersions
- Inherits:
-
Object
- Object
- PactBroker::Domain::OrderVersions
show all
- Includes:
- Logging
- Defined in:
- lib/pact_broker/domain/order_versions.rb
Defined Under Namespace
Classes: OrderableVersion
Class Method Summary
collapse
Methods included from Logging
included, #log_error
Class Method Details
.call(new_version) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/pact_broker/domain/order_versions.rb', line 9
def self.call new_version
new_version.lock!
order_set = false
PactBroker::Domain::Version.for_update.where(pacticipant_id: new_version.pacticipant_id).exclude(order: nil).reverse(:order).each do | existing_version |
if new_version_after_existing_version? new_version, existing_version
set_order_after_existing_version_order new_version, existing_version
order_set = true
break
else
increment_existing_version_order existing_version
end
end
if !order_set
set_order new_version, 0
end
end
|
.increment_existing_version_order(existing_version) ⇒ Object
28
29
30
|
# File 'lib/pact_broker/domain/order_versions.rb', line 28
def self.increment_existing_version_order existing_version
set_order existing_version, existing_version.order + 1
end
|
.new_version_after_existing_version?(new_version, existing_version) ⇒ Boolean
.set_order(version, order) ⇒ Object
36
37
38
39
|
# File 'lib/pact_broker/domain/order_versions.rb', line 36
def self.set_order version, order
Sequel::Model.db[:versions].where(id: version.id).update(order: order)
end
|
.set_order_after_existing_version_order(new_version, existing_version) ⇒ Object
32
33
34
|
# File 'lib/pact_broker/domain/order_versions.rb', line 32
def self.set_order_after_existing_version_order new_version, existing_version
set_order new_version, existing_version.order + 1
end
|