Update
This commit is contained in:
parent
b596606c14
commit
58049c93d4
8 changed files with 115 additions and 149 deletions
|
@ -1,25 +1,23 @@
|
|||
defmodule NullaWeb.InboxController do
|
||||
use NullaWeb, :controller
|
||||
alias Nulla.Models.Follow
|
||||
alias Nulla.Utils
|
||||
|
||||
def receive(conn, %{"type" => "Follow"} = activity) do
|
||||
# Check signature
|
||||
# Verify actor and object
|
||||
# Save follow to db
|
||||
# Send Accept or Reject
|
||||
json(conn, %{"status" => "Follow received"})
|
||||
end
|
||||
|
||||
def receive(conn, %{"type" => "Like"} = activity) do
|
||||
# Process Like
|
||||
json(conn, %{"status" => "Like received"})
|
||||
end
|
||||
|
||||
def receive(conn, %{"type" => "Create"} = activity) do
|
||||
# Create object and save
|
||||
json(conn, %{"status" => "Object created"})
|
||||
end
|
||||
|
||||
def receive(conn, _params) do
|
||||
json(conn, %{"status" => "Unhandled type"})
|
||||
def inbox(
|
||||
conn,
|
||||
%{"type" => "Follow", "actor" => actor_uri, "object" => target_uri} = activity
|
||||
) do
|
||||
with {:ok, target_user} <- Utils.resolve_local_actor(target_uri),
|
||||
{:ok, remote_actor} <- Utils.fetch_remote_actor(actor_uri),
|
||||
:ok <- HTTPSignature.verify(conn, remote_actor),
|
||||
remote_user <- Follow.create_remote_user(remote_actor),
|
||||
follow <- Follow.create_follow(%{user: remote_user, target: target_user}),
|
||||
:ok <- Utils.send_accept_activity(remote_actor, target_user, follow, activity) do
|
||||
json(conn, %{"status" => "Follow accepted"})
|
||||
else
|
||||
error ->
|
||||
IO.inspect(error, label: "Follow error")
|
||||
json(conn, %{"error" => "Failed to process Follow"})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,33 +5,11 @@ defmodule NullaWeb.NoteController do
|
|||
alias Nulla.Models.Note
|
||||
alias Nulla.Models.InstanceSettings
|
||||
|
||||
def index(conn, _params) do
|
||||
notes = Notes.list_notes()
|
||||
render(conn, :index, notes: notes)
|
||||
end
|
||||
|
||||
def new(conn, _params) do
|
||||
changeset = Notes.change_note(%Note{})
|
||||
render(conn, :new, changeset: changeset)
|
||||
end
|
||||
|
||||
def create(conn, %{"note" => note_params}) do
|
||||
case Notes.create_note(note_params) do
|
||||
{:ok, note} ->
|
||||
conn
|
||||
|> put_flash(:info, "Note created successfully.")
|
||||
|> redirect(to: ~p"/notes/#{note}")
|
||||
|
||||
{:error, %Ecto.Changeset{} = changeset} ->
|
||||
render(conn, :new, changeset: changeset)
|
||||
end
|
||||
end
|
||||
|
||||
def show(conn, %{"username" => username, "note_id" => note_id}) do
|
||||
def show(conn, %{"username" => username, "id" => id}) do
|
||||
accept = List.first(get_req_header(conn, "accept"))
|
||||
instance_settings = InstanceSettings.get_instance_settings!()
|
||||
domain = instance_settings.domain
|
||||
note = Note.get_note!(note_id) |> Repo.preload([:user, :media_attachments])
|
||||
note = Note.get_note!(id) |> Repo.preload([:user, :media_attachments])
|
||||
|
||||
if username != note.user.username do
|
||||
conn
|
||||
|
@ -48,38 +26,4 @@ defmodule NullaWeb.NoteController do
|
|||
render(conn, :show, domain: domain, note: note, layout: false)
|
||||
end
|
||||
end
|
||||
|
||||
# def show(conn, %{"id" => id}) do
|
||||
# note = Notes.get_note!(id)
|
||||
# render(conn, :show, note: note)
|
||||
# end
|
||||
|
||||
def edit(conn, %{"id" => id}) do
|
||||
note = Notes.get_note!(id)
|
||||
changeset = Notes.change_note(note)
|
||||
render(conn, :edit, note: note, changeset: changeset)
|
||||
end
|
||||
|
||||
def update(conn, %{"id" => id, "note" => note_params}) do
|
||||
note = Notes.get_note!(id)
|
||||
|
||||
case Notes.update_note(note, note_params) do
|
||||
{:ok, note} ->
|
||||
conn
|
||||
|> put_flash(:info, "Note updated successfully.")
|
||||
|> redirect(to: ~p"/notes/#{note}")
|
||||
|
||||
{:error, %Ecto.Changeset{} = changeset} ->
|
||||
render(conn, :edit, note: note, changeset: changeset)
|
||||
end
|
||||
end
|
||||
|
||||
def delete(conn, %{"id" => id}) do
|
||||
note = Notes.get_note!(id)
|
||||
{:ok, _note} = Notes.delete_note(note)
|
||||
|
||||
conn
|
||||
|> put_flash(:info, "Note deleted successfully.")
|
||||
|> redirect(to: ~p"/notes")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,7 +5,7 @@ defmodule NullaWeb.OutboxController do
|
|||
alias Nulla.Models.Note
|
||||
alias Nulla.Models.InstanceSettings
|
||||
|
||||
def show(conn, %{"username" => username} = params) do
|
||||
def outbox(conn, %{"username" => username} = params) do
|
||||
case Map.get(params, "page") do
|
||||
"true" ->
|
||||
instance_settings = InstanceSettings.get_instance_settings!()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue