Last active
February 20, 2019 13:06
-
-
Save davydovanton/f21d23b8d56ab76e8de7a0acd2e13265 to your computer and use it in GitHub Desktop.
Revisions
-
davydovanton revised this gist
Mar 17, 2018 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -2,9 +2,9 @@ def result_handler(result) case result when Success, Some puts 'success, user created' when Failure { |message, _| message == :http_error } puts "HTTP request error, #{result.failure[2]}" when Failure { |message, _| message == :validation_error } puts "validation error, #{result.failure[2]}" when Failure(ROM::Error) puts 'User not created' -
davydovanton created this gist
Mar 17, 2018 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,24 @@ def result_handler(result) case result when Success, Some puts 'success, user created' when Failure { |message, hash| message == :http_error } puts "HTTP request error, #{result.failure[2]}" when Failure { |message, hash| message == :validation_error } puts "validation error, #{result.failure[2]}" when Failure(ROM::Error) puts 'User not created' end end def save_user_from_url(url, params) http.get(url, params) .bind { |body| validator.call(body).to_result } .bind { |payload| Try(ROM::Error) { (user_repository.create(payload) } } .fmap { |user| NotificationWorker.perform_async(user.id) } end result_handler save_user_from_url('site.com/posts/1', option: 1) # => HTTP request error result_handler save_user_from_url('site.com/users/1', option: :invalid) # => validation Error result_handler save_user_from_url('site.com/users/1', option: :dublicated) # => persistance Error result_handler save_user_from_url('site.com/users/1', option: :valid) # => 'success, user created'