json.data do json.meta do json.unread_count @unread_count json.count @count json.current_page @current_page end json.payload do json.array! @notifications do |notification| json.id notification.id json.notification_type notification.notification_type json.push_message_title notification.push_message_title # TODO: front end assumes primary actor to be conversation. should fix in future if %w[assigned_conversation_new_message conversation_mention].include? notification.notification_type json.primary_actor_type 'Conversation' json.primary_actor_id notification.conversation.id json.primary_actor notification.conversation.push_event_data else json.primary_actor_type notification.primary_actor_type json.primary_actor_id notification.primary_actor_id json.primary_actor notification.primary_actor.push_event_data end json.read_at notification.read_at # Secondary actor could be nil for cases like system assigning conversation json.secondary_actor notification.secondary_actor&.push_event_data json.user notification.user.push_event_data json.created_at notification.created_at.to_i end end end