Class: PageVariants::Publish

Inherits:
BaseService
  • Object
show all
Defined in:
app/services/postnhost/publishing/page_variants/publish.rb

Instance Method Summary collapse

Constructor Details

#initialize(page_variant:) ⇒ Publish

Returns a new instance of Publish.



4
5
6
# File 'app/services/postnhost/publishing/page_variants/publish.rb', line 4

def initialize(page_variant:)
  @page_variant = page_variant
end

Instance Method Details

#callObject



8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/services/postnhost/publishing/page_variants/publish.rb', line 8

def call
  snapshot = Revision.hold do
    page_variant.page.lock!
    page_variant.lock!
    PageVariants::SnapshotWriter.new(variant: page_variant).call
  end
  success(snapshot, status: :ok)
rescue Error => e
  failure(e.messages)
rescue ActiveRecord::RecordInvalid, ActiveRecord::RecordNotUnique => e
  failure(e.message)
end