mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-12-31 04:32:06 +08:00
26 lines
830 B
Ruby
26 lines
830 B
Ruby
# frozen_string_literal: true
|
|
|
|
module MyModuleStatusConsequences
|
|
class RepositorySnapshot < MyModuleStatusConsequence
|
|
def runs_in_background?
|
|
true
|
|
end
|
|
|
|
def forward(my_module)
|
|
my_module.assigned_repositories.each do |repository|
|
|
repository_snapshot = ::RepositorySnapshot.create_preliminary(repository, my_module)
|
|
service = Repositories::SnapshotProvisioningService.call(repository_snapshot: repository_snapshot)
|
|
|
|
unless service.succeed?
|
|
repository_snapshot.failed!
|
|
raise StandardError, service.errors
|
|
end
|
|
|
|
snapshot = service.repository_snapshot
|
|
unless snapshot.my_module.repository_snapshots.where(parent_id: snapshot.parent_id).find_by(selected: true)
|
|
snapshot.update!(selected: true)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|