Class: Achievements::RevokeService
- Inherits:
-
Object
- Object
- Achievements::RevokeService
- Defined in:
- app/services/achievements/revoke_service.rb
Instance Attribute Summary collapse
-
#current_user ⇒ Object
readonly
Returns the value of attribute current_user.
-
#user_achievement ⇒ Object
readonly
Returns the value of attribute user_achievement.
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(current_user, user_achievement) ⇒ RevokeService
constructor
A new instance of RevokeService.
Constructor Details
#initialize(current_user, user_achievement) ⇒ RevokeService
Returns a new instance of RevokeService.
7 8 9 10 |
# File 'app/services/achievements/revoke_service.rb', line 7 def initialize(current_user, user_achievement) @current_user = current_user @user_achievement = user_achievement end |
Instance Attribute Details
#current_user ⇒ Object (readonly)
Returns the value of attribute current_user.
5 6 7 |
# File 'app/services/achievements/revoke_service.rb', line 5 def current_user @current_user end |
#user_achievement ⇒ Object (readonly)
Returns the value of attribute user_achievement.
5 6 7 |
# File 'app/services/achievements/revoke_service.rb', line 5 def user_achievement @user_achievement end |
Instance Method Details
#execute ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/services/achievements/revoke_service.rb', line 12 def execute return unless allowed?(user_achievement.achievement) return error_already_revoked if user_achievement.revoked? user_achievement.assign_attributes({ revoked_by_user_id: current_user.id, revoked_at: Time.zone.now }) return error_awarding unless user_achievement.save ServiceResponse.success(payload: user_achievement) end |