5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-07-02 13:06:08 +00:00
panel/app/services/post_service.rb

33 lines
1,021 B
Ruby
Raw Normal View History

2019-08-13 23:33:57 +00:00
# frozen_string_literal: true
# Este servicio se encarga de crear artículos y guardarlos en git,
# asignándoselos a une usuarie
PostService = Struct.new(:site, :usuarie, :post, :params, keyword_init: true) do
# Crea un artículo nuevo
#
# @return Post
def create
# TODO: Implementar layout
self.post = site.posts.build
# TODO: No podemos pasar los post_params a build aun porque para
# saber los parámetros tenemos que haber instanciado el post
# primero.
post.update_attributes(post_params) &&
site.repository.commit(file: post.path.absolute,
usuarie: usuarie,
message: I18n.t('post_service.created',
title: post.title.value))
# Devolver el post aunque no se haya salvado para poder rescatar los
# errores
post
end
private
# Solo permitir cambiar estos atributos de cada articulo
def post_params
params.require(:post).permit(post.params)
end
end