diff --git a/diskuy_back/lib/diskuy/forum/post.ex b/diskuy_back/lib/diskuy/forum/post.ex index 7b784100d2849931f0b00d219a3d6c2843bce5d9..ef1a9a3273102f95676285b2dfd18710418f028b 100644 --- a/diskuy_back/lib/diskuy/forum/post.ex +++ b/diskuy_back/lib/diskuy/forum/post.ex @@ -5,18 +5,15 @@ defmodule Diskuy.Forum.Post do schema "posts" do field :message, :string field :points, :integer - field :status, :string field :thread_id, :id - field :post_parent_id, :id field :user_id, :id - timestamps() end @doc false def changeset(post, attrs) do post - |> cast(attrs, [:message, :points, :status, :thread_id, :post_parent_id, :user_id]) - |> validate_required([:message, :points, :status, :thread_id, :user_id]) + |> cast(attrs, [:message, :points, :thread_id, :user_id]) + |> validate_required([:message, :points, :thread_id, :user_id]) end end diff --git a/diskuy_back/lib/diskuy_web/controllers/post_controller.ex b/diskuy_back/lib/diskuy_web/controllers/post_controller.ex index 585b55b0ac6ece1aace0916323329b0c62c43ccc..b48f5ef907dee75d6698eff6a480008d7899079e 100644 --- a/diskuy_back/lib/diskuy_web/controllers/post_controller.ex +++ b/diskuy_back/lib/diskuy_web/controllers/post_controller.ex @@ -12,7 +12,8 @@ defmodule DiskuyWeb.PostController do end def create(conn, %{"post" => post_params}) do - with {:ok, %Post{} = post} <- Forum.create_post(post_params) do + new_params = put_user_id(conn, %{"post" => post_params}) + with {:ok, %Post{} = post} <- Forum.create_post(new_params) do conn |> put_status(:created) |> put_resp_header("location", Routes.post_path(conn, :show, post)) @@ -40,4 +41,11 @@ defmodule DiskuyWeb.PostController do send_resp(conn, :no_content, "") end end + + defp put_user_id(conn, %{"post" => post_params}) do + current_user = Guardian.Plug.current_resource(conn) + new_params = Map.put(post_params, "user_id", current_user.id) + new_params + end + end diff --git a/diskuy_back/lib/diskuy_web/router.ex b/diskuy_back/lib/diskuy_web/router.ex index 394ea7bcb823d0a977981ec3fc455764b232697e..a50c6cfcb28af078b6a0a0231750b23eaa46c3a3 100644 --- a/diskuy_back/lib/diskuy_web/router.ex +++ b/diskuy_back/lib/diskuy_web/router.ex @@ -14,20 +14,21 @@ defmodule DiskuyWeb.Router do pipe_through [:api, :auth] get "/current", UserController, :currentuser resources "/threads", ThreadController, except: [:new, :edit, :show, :index] + resources "/topics", TopicController, except: [:new, :edit, :show, :index] + resources "/post", PostController, except: [:new, :edit, :show, :index] end scope "/api", DiskuyWeb do pipe_through :api - # resources "/users", UserController, except: [:new, :edit] get "/users", UserController, :index get "/users/:id", UserController, :show - resources "/topics", TopicController, except: [:new, :edit] + resources "/topics", TopicController, except: [:new, :edit, :create, :update, :delete] options "/topics", TopicController, :options options "/topics/:id", TopicController, :options resources "/threads", ThreadController, except: [:new, :edit, :create, :update, :delete] options "/threads", ThreadController, :options options "/threads/:id", ThreadController, :options - resources "/post", PostController, except: [:new, :edit] + resources "/post", PostController, except: [:new, :edit, :create, :update, :delete] options "/post", PostController, :options options "/post/:id", PostController, :options post "/users/signup", UserController, :create diff --git a/diskuy_back/priv/repo/migrations/20201211055930_create_posts.exs b/diskuy_back/priv/repo/migrations/20201211055930_create_posts.exs index 3b1565ffc81afae9f256b60732035103d3327288..8d8e9389f015fc9d3a8f7dbff6b3751159197733 100644 --- a/diskuy_back/priv/repo/migrations/20201211055930_create_posts.exs +++ b/diskuy_back/priv/repo/migrations/20201211055930_create_posts.exs @@ -5,16 +5,13 @@ defmodule Diskuy.Repo.Migrations.CreatePosts do create table(:posts) do add :message, :text add :points, :integer - add :status, :string add :thread_id, references(:threads, on_delete: :delete_all, type: :id) - add :post_parent_id, references(:posts, on_delete: :nothing, type: :id) - add :user_id, references(:users, on_delete: :delete_all type: :id) + add :user_id, references(:users, on_delete: :delete_all, type: :id) timestamps() end create index(:posts, [:thread_id]) - create index(:posts, [:post_parent_id]) create index(:posts, [:user_id]) end end