# Pleroma: A lightweight social networking server # Copyright © 2017-2019 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.StreamerView do use Pleroma.Web, :view alias Pleroma.Activity alias Pleroma.Conversation.Participation alias Pleroma.Notification alias Pleroma.User alias Pleroma.Web.MastodonAPI.NotificationView def render("update.json", %Activity{} = activity, %User{} = user) do %{ event: "update", payload: Pleroma.Web.MastodonAPI.StatusView.render( "status.json", activity: activity, for: user ) |> Jason.encode!() } |> Jason.encode!() end def render("notification.json", %User{} = user, %Notification{} = notify) do %{ event: "notification", payload: NotificationView.render( "show.json", %{notification: notify, for: user} ) |> Jason.encode!() } |> Jason.encode!() end def render("update.json", %Activity{} = activity) do %{ event: "update", payload: Pleroma.Web.MastodonAPI.StatusView.render( "status.json", activity: activity ) |> Jason.encode!() } |> Jason.encode!() end def render("conversation.json", %Participation{} = participation) do %{ event: "conversation", payload: Pleroma.Web.MastodonAPI.ConversationView.render("participation.json", %{ participation: participation, for: participation.user }) |> Jason.encode!() } |> Jason.encode!() end end