Class: ArticleVariants::Publish

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

Instance Method Summary collapse

Constructor Details

#initialize(article_variant:) ⇒ Publish

Returns a new instance of Publish.



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

def initialize(article_variant:)
  @article_variant = article_variant
end

Instance Method Details

#callObject



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

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