mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Add post action creator
This commit is contained in:
20
lib/post_action_creator.rb
Normal file
20
lib/post_action_creator.rb
Normal file
@@ -0,0 +1,20 @@
|
||||
# creates post actions based on a post and a user
|
||||
class PostActionCreator
|
||||
|
||||
def initialize(user, post)
|
||||
@user = user
|
||||
@post = post
|
||||
end
|
||||
|
||||
def perform(action)
|
||||
guardian.ensure_post_can_act!(@post, action, taken_actions: PostAction.counts_for([@post], @user)[@post.id])
|
||||
PostAction.act(@user, @post, action)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def guardian
|
||||
@guardian ||= Guardian.new(@user)
|
||||
end
|
||||
|
||||
end
|
Reference in New Issue
Block a user