Update tests

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2018-07-10 14:56:10 +02:00
parent dee437e4f3
commit 73ef0dc6af
5 changed files with 29 additions and 4 deletions

View File

@@ -76,7 +76,8 @@ defmodule Eventos.Actors.Actor do
@doc false
def changeset(%Actor{} = actor, attrs) do
actor
|> Ecto.Changeset.cast(attrs, [:url, :outbox_url, :inbox_url, :shared_inbox_url, :following_url, :followers_url, :type, :name, :domain, :summary, :preferred_username, :keys, :manually_approves_followers, :suspended, :avatar_url, :banner_url])
|> Ecto.Changeset.cast(attrs, [:url, :outbox_url, :inbox_url, :shared_inbox_url, :following_url, :followers_url, :type, :name, :domain, :summary, :preferred_username, :keys, :manually_approves_followers, :suspended, :avatar_url, :banner_url, :user_id])
|> put_change(:url, "#{EventosWeb.Endpoint.url()}/@#{attrs["prefered_username"]}")
|> validate_required([:preferred_username, :keys, :suspended, :url])
|> unique_constraint(:prefered_username, name: :actors_preferred_username_domain_index)
end

View File

@@ -5,7 +5,7 @@ defmodule EventosWeb.ActorController do
use EventosWeb, :controller
alias Eventos.Actors
alias Eventos.Actors.Actor
alias Eventos.Actors.{Actor, User}
alias Eventos.Service.ActivityPub
action_fallback EventosWeb.FallbackController
@@ -15,6 +15,17 @@ defmodule EventosWeb.ActorController do
render(conn, "index.json", actors: actors)
end
def create(conn, %{"actor" => actor_params}) do
with %User{} = user <- Guardian.Plug.current_resource(conn),
actor_params <- Map.put(actor_params, "user_id", user.id),
{:ok, %Actor{} = actor} <- Actors.create_actor(actor_params) do
conn
|> put_status(:created)
|> put_resp_header("location", actor_path(conn, :show, actor.preferred_username))
|> render("show_basic.json", actor: actor)
end
end
def show(conn, %{"name" => name}) do
actor = Actors.get_actor_by_name_with_everything(name)
render(conn, "show.json", actor: actor)

View File

@@ -76,6 +76,7 @@ defmodule EventosWeb.Router do
get "/user", UserController, :show_current_actor
post "/sign-out", UserSessionController, :sign_out
resources "/users", UserController, except: [:new, :edit, :show]
post "/actors", ActorController, :create
patch "/actors/:name", ActorController, :update
post "/events", EventController, :create
patch "/events/:uuid", EventController, :update