mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-23 05:06:22 +00:00
refactor: llevar un staging de archivos a agregar
This commit is contained in:
parent
ce3ff1bdab
commit
363e2d8385
1 changed files with 20 additions and 5 deletions
|
@ -17,7 +17,9 @@ PostService = Struct.new(:site, :usuarie, :post, :params, keyword_init: true) do
|
||||||
post.slug.value = p[:slug] if p[:slug].present?
|
post.slug.value = p[:slug] if p[:slug].present?
|
||||||
end
|
end
|
||||||
|
|
||||||
commit(action: :created, add: update_related_posts) if post.save
|
update_related_posts
|
||||||
|
|
||||||
|
commit(action: :created, add: files) if post.save
|
||||||
|
|
||||||
update_site_license!
|
update_site_license!
|
||||||
|
|
||||||
|
@ -35,7 +37,7 @@ PostService = Struct.new(:site, :usuarie, :post, :params, keyword_init: true) do
|
||||||
# Los artículos anónimos siempre son borradores
|
# Los artículos anónimos siempre son borradores
|
||||||
params[:draft] = true
|
params[:draft] = true
|
||||||
|
|
||||||
commit(action: :created, add: [post.path.absolute]) if post.update(anon_post_params)
|
commit(action: :created, add: files) if post.update(anon_post_params)
|
||||||
post
|
post
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -48,9 +50,11 @@ PostService = Struct.new(:site, :usuarie, :post, :params, keyword_init: true) do
|
||||||
rm = []
|
rm = []
|
||||||
rm << post.path.value_was if post.path.changed?
|
rm << post.path.value_was if post.path.changed?
|
||||||
|
|
||||||
|
update_related_posts
|
||||||
|
|
||||||
# Es importante que el artículo se guarde primero y luego los
|
# Es importante que el artículo se guarde primero y luego los
|
||||||
# relacionados.
|
# relacionados.
|
||||||
commit(action: :updated, add: update_related_posts, rm: rm)
|
commit(action: :updated, add: files, rm: rm)
|
||||||
|
|
||||||
update_site_license!
|
update_site_license!
|
||||||
end
|
end
|
||||||
|
@ -97,6 +101,15 @@ PostService = Struct.new(:site, :usuarie, :post, :params, keyword_init: true) do
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
# Una lista de archivos a modificar
|
||||||
|
#
|
||||||
|
# @return [Set]
|
||||||
|
def files
|
||||||
|
@files ||= Set.new.tap do |f|
|
||||||
|
f << post.path.absolute
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def commit(action:, add: [], rm: [])
|
def commit(action:, add: [], rm: [])
|
||||||
site.repository.commit(add: add,
|
site.repository.commit(add: add,
|
||||||
rm: rm,
|
rm: rm,
|
||||||
|
@ -147,8 +160,10 @@ PostService = Struct.new(:site, :usuarie, :post, :params, keyword_init: true) do
|
||||||
end
|
end
|
||||||
|
|
||||||
posts.map do |p|
|
posts.map do |p|
|
||||||
p.path.absolute if p.save(validate: false)
|
next unless p.save(validate: false)
|
||||||
end.compact << post.path.absolute
|
|
||||||
|
files << p.path.absolute
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Si les usuaries modifican o crean una licencia, considerarla
|
# Si les usuaries modifican o crean una licencia, considerarla
|
||||||
|
|
Loading…
Reference in a new issue