From eeec0a8808fa63fe38402b376373829d906e9b8c Mon Sep 17 00:00:00 2001 From: Krzysztof Kotlarek Date: Thu, 12 Sep 2024 09:02:40 +1000 Subject: [PATCH] PERF: static id for like post action type (#112) Before flags were in the database, PostActionType.types were stored in memory and getting PostActionType.types[:like] was a very cheap operation. Now, PostActionType is cached in Redis and we should try to avoid sending too many requests, especially that id for like is always 2. --- plugin.rb | 7 ++++++- spec/lib/discourse_activity_pub/ap/activity/like_spec.rb | 4 ++-- spec/lib/discourse_activity_pub/ap/activity/undo_spec.rb | 4 ++-- spec/lib/post_action_destroyer_spec.rb | 4 ++-- spec/models/post_action_spec.rb | 2 +- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/plugin.rb b/plugin.rb index f350b29b..ebf04f2a 100644 --- a/plugin.rb +++ b/plugin.rb @@ -865,7 +865,12 @@ post = activity.object.stored.model if user && post - PostActionCreator.new(user, post, PostActionType.types[:like], reason: :activity_pub).perform + PostActionCreator.new( + user, + post, + PostActionType::LIKE_POST_ACTION_ID, + reason: :activity_pub, + ).perform end end diff --git a/spec/lib/discourse_activity_pub/ap/activity/like_spec.rb b/spec/lib/discourse_activity_pub/ap/activity/like_spec.rb index 9c1d11b9..b1f08ea7 100644 --- a/spec/lib/discourse_activity_pub/ap/activity/like_spec.rb +++ b/spec/lib/discourse_activity_pub/ap/activity/like_spec.rb @@ -46,7 +46,7 @@ PostAction.exists?( post_id: post.id, user_id: @user.id, - post_action_type_id: PostActionType.types[:like], + post_action_type_id: PostActionType::LIKE_POST_ACTION_ID, ), ).to be(true) end @@ -84,7 +84,7 @@ PostAction.exists?( post_id: post.id, user_id: @user.id, - post_action_type_id: PostActionType.types[:like], + post_action_type_id: PostActionType::LIKE_POST_ACTION_ID, ), ).to be(true) end diff --git a/spec/lib/discourse_activity_pub/ap/activity/undo_spec.rb b/spec/lib/discourse_activity_pub/ap/activity/undo_spec.rb index 3de15f15..b24c68fd 100644 --- a/spec/lib/discourse_activity_pub/ap/activity/undo_spec.rb +++ b/spec/lib/discourse_activity_pub/ap/activity/undo_spec.rb @@ -47,7 +47,7 @@ :post_action, user: user, post: post, - post_action_type_id: PostActionType.types[:like], + post_action_type_id: PostActionType::LIKE_POST_ACTION_ID, ) end let!(:person) { Fabricate(:discourse_activity_pub_actor_person, model: user) } @@ -64,7 +64,7 @@ PostAction.exists?( post_id: post.id, user_id: user.id, - post_action_type_id: PostActionType.types[:like], + post_action_type_id: PostActionType::LIKE_POST_ACTION_ID, ), ).to be(false) end diff --git a/spec/lib/post_action_destroyer_spec.rb b/spec/lib/post_action_destroyer_spec.rb index 5e3a9edc..76875dab 100644 --- a/spec/lib/post_action_destroyer_spec.rb +++ b/spec/lib/post_action_destroyer_spec.rb @@ -16,7 +16,7 @@ :post_action, user: user2, post: post, - post_action_type_id: PostActionType.types[:like], + post_action_type_id: PostActionType::LIKE_POST_ACTION_ID, ) end let!(:post_action2) do @@ -24,7 +24,7 @@ :post_action, user: user3, post: post, - post_action_type_id: PostActionType.types[:like], + post_action_type_id: PostActionType::LIKE_POST_ACTION_ID, ) end let!(:like1) { Fabricate(:discourse_activity_pub_activity_like, actor: actor2, object: note) } diff --git a/spec/models/post_action_spec.rb b/spec/models/post_action_spec.rb index b65c0c34..6d6ffa8c 100644 --- a/spec/models/post_action_spec.rb +++ b/spec/models/post_action_spec.rb @@ -25,7 +25,7 @@ :post_action, user: user2, post: post, - post_action_type_id: PostActionType.types[:like], + post_action_type_id: PostActionType::LIKE_POST_ACTION_ID, ) end