From a96ee483d6fff959ddf3b0a70c8548389c5ba6cf Mon Sep 17 00:00:00 2001 From: Muhammad Rafif Elfazri <rafif.elfazri@gmail.com> Date: Fri, 8 Jan 2021 14:54:13 +0700 Subject: [PATCH 1/3] DB topics and post must have token --- .../lib/diskuy_web/controllers/post_controller.ex | 10 +++++++++- diskuy_back/lib/diskuy_web/router.ex | 7 ++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/diskuy_back/lib/diskuy_web/controllers/post_controller.ex b/diskuy_back/lib/diskuy_web/controllers/post_controller.ex index 585b55b..b48f5ef 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 394ea7b..a50c6cf 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 -- GitLab From 5c38ccee254dbdaee7dbd20943e6ac3a581f430d Mon Sep 17 00:00:00 2001 From: Muhammad Rafif Elfazri <rafif.elfazri@gmail.com> Date: Fri, 8 Jan 2021 15:04:33 +0700 Subject: [PATCH 2/3] Delete Status and post_parent_id --- diskuy_back/lib/diskuy/forum/post.ex | 7 ++----- .../priv/repo/migrations/20201211055930_create_posts.exs | 3 --- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/diskuy_back/lib/diskuy/forum/post.ex b/diskuy_back/lib/diskuy/forum/post.ex index 7b78410..ef1a9a3 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/priv/repo/migrations/20201211055930_create_posts.exs b/diskuy_back/priv/repo/migrations/20201211055930_create_posts.exs index 3b1565f..2eebd29 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) timestamps() end create index(:posts, [:thread_id]) - create index(:posts, [:post_parent_id]) create index(:posts, [:user_id]) end end -- GitLab From bbcb8d13186bbf468a2f2eb18dc28027831cc3ee Mon Sep 17 00:00:00 2001 From: Muhammad Rafif Elfazri <rafif.elfazri@gmail.com> Date: Fri, 8 Jan 2021 15:07:26 +0700 Subject: [PATCH 3/3] update post migrations --- .../priv/repo/migrations/20201211055930_create_posts.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diskuy_back/priv/repo/migrations/20201211055930_create_posts.exs b/diskuy_back/priv/repo/migrations/20201211055930_create_posts.exs index 2eebd29..8d8e938 100644 --- a/diskuy_back/priv/repo/migrations/20201211055930_create_posts.exs +++ b/diskuy_back/priv/repo/migrations/20201211055930_create_posts.exs @@ -6,7 +6,7 @@ defmodule Diskuy.Repo.Migrations.CreatePosts do add :message, :text add :points, :integer add :thread_id, references(:threads, on_delete: :delete_all, 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 -- GitLab