Get Post Id's of posts that a user liked

I would like to get the id’s of posts that a specific user has liked. How can I do this?

You can find that with the Data Explorer Plugin with a query like this:

-- [params]
-- string :username

WITH sample_user AS (
SELECT
u.id
FROM users u
WHERE u.username = :username
)

SELECT
p.topic_id,
pa.post_id,
pa.created_at AS liked_at
FROM post_actions pa
JOIN posts p
ON p.id = pa.post_id
WHERE pa.post_action_type_id = 2
AND pa.user_id = (SELECT id FROM sample_user)
ORDER BY pa.created_at DESC

If you need to see the actual id, instead of a link to the topic and an excerpt of the post, change the line

pa.post_id

to

pa.post_id AS id

To get the post_ids with an ActiveRecord query, do something like this, with the user_id of the user you are looking for:

PostAction.where(post_action_type_id: 2, user_id: 1).pluck(:post_id)
5 Likes

this looks really cool!

Specifically, I was wondering if there was a way to get this through api

You can query the Data Explorer through the API. Take a look at Access to query data from API endpoints.

2 Likes