class WinewooCore::UseCases::WinewooUser::Favorites::CreateFavorite
Public Class Methods
new(log_params=nil)
click to toggle source
Calls superclass method
WinewooCore::UseCases::BaseUseCase::new
# File lib/winewoo_core/use_cases/winewoo_user/favorites/create_favorite.rb, line 4 def initialize(log_params=nil) super(WinewooCore.favorites_repo.new, log_params) end
Public Instance Methods
call(winewoo_user, favorite_params) { |persisted? ? success: failure| ... }
click to toggle source
# File lib/winewoo_core/use_cases/winewoo_user/favorites/create_favorite.rb, line 9 def call(winewoo_user, favorite_params) favorite = self.repo.create(winewoo_user, favorite_params) self.log_repo.create(complete_log_params(favorite)) if favorite.persisted? yield favorite.persisted? ? UseCaseResults.success(favorite) : UseCaseResults.failure(favorite.errors) end
Private Instance Methods
complete_log_params(favorite)
click to toggle source
# File lib/winewoo_core/use_cases/winewoo_user/favorites/create_favorite.rb, line 22 def complete_log_params(favorite) wine = WinewooCore.wines_repo.new.get(favorite.wine_id) self.log_params.params = { "action" => "favorite_wine", "wine_id" => favorite.wine_id, "vintage_id" => favorite.vintage_id, "producer_id" => wine.official? ? wine.producer.id : nil } return self.log_params end