Files
ubicloud/prog/page_nexus.rb
Jeremy Evans 59621ae323 Use create_with_id in progs and routes
Only changes to the specs in this commit are to fix mocking issues.
2025-08-07 02:13:08 +09:00

30 lines
712 B
Ruby

# frozen_string_literal: true
class Prog::PageNexus < Prog::Base
subject_is :page
def self.assemble(summary, tag_parts, related_resources, severity: "error", extra_data: {})
DB.transaction do
return if Page.from_tag_parts(tag_parts)
pg = Page.create(summary: summary, details: extra_data.merge({"related_resources" => Array(related_resources)}), tag: Page.generate_tag(tag_parts), severity: severity)
Strand.create_with_id(pg.id, prog: "PageNexus", label: "start")
end
end
label def start
page.trigger
hop_wait
end
label def wait
when_resolve_set? do
page.resolve
page.destroy
pop "page is resolved"
end
nap 6 * 60 * 60
end
end