2022-05-28 11:03:36 +02:00
|
|
|
class PostStatusChangesController < ApplicationController
|
|
|
|
|
def index
|
|
|
|
|
post_status_changes = PostStatusChange
|
|
|
|
|
.select(
|
|
|
|
|
:post_status_id,
|
2022-06-22 10:17:42 +02:00
|
|
|
:created_at,
|
2025-01-09 10:55:44 +01:00
|
|
|
'users.id as user_id', # required for avatar_url
|
2022-05-28 11:03:36 +02:00
|
|
|
'users.full_name as user_full_name',
|
|
|
|
|
'users.email as user_email',
|
|
|
|
|
)
|
|
|
|
|
.where(post_id: params[:post_id])
|
|
|
|
|
.left_outer_joins(:user)
|
2022-06-22 10:17:42 +02:00
|
|
|
.order(created_at: :asc)
|
2025-01-09 10:55:44 +01:00
|
|
|
.includes(user: { avatar_attachment: :blob }) # Preload avatars
|
|
|
|
|
|
|
|
|
|
post_status_changes = post_status_changes.map do |post_status_change|
|
2025-01-23 12:47:35 +01:00
|
|
|
user_avatar_url = post_status_change.user.avatar.attached? ? post_status_change.user.avatar.blob.url : nil
|
2025-01-09 10:55:44 +01:00
|
|
|
post_status_change.attributes.merge(user_avatar: user_avatar_url)
|
|
|
|
|
end
|
2022-05-28 11:03:36 +02:00
|
|
|
|
|
|
|
|
render json: post_status_changes
|
|
|
|
|
end
|
|
|
|
|
end
|