From 32316c4f713fc5437bcc3f5704497f1eb48ca220 Mon Sep 17 00:00:00 2001 From: mydearxym Date: Fri, 7 May 2021 20:31:03 +0800 Subject: [PATCH 1/3] refactor(viewer-upvote): comment wip --- .../accounts/delegates/collect_folder.ex | 3 +-- .../cms/delegates/article_comment.ex | 20 +++++++++++++- .../cms/delegates/article_curd.ex | 18 +++---------- .../cms/delegates/article_operation.ex | 26 +++++-------------- .../cms/delegates/article_reaction.ex | 24 ++++------------- .../cms/embeds/article_comment_meta.ex | 5 +++- lib/helper/orm.ex | 10 +++++++ lib/helper/utils/utils.ex | 7 +++++ .../cms/article_comment_test.exs | 8 ++++++ 9 files changed, 64 insertions(+), 57 deletions(-) diff --git a/lib/groupher_server/accounts/delegates/collect_folder.ex b/lib/groupher_server/accounts/delegates/collect_folder.ex index c130213c2..173227632 100644 --- a/lib/groupher_server/accounts/delegates/collect_folder.ex +++ b/lib/groupher_server/accounts/delegates/collect_folder.ex @@ -208,8 +208,7 @@ defmodule GroupherServer.Accounts.Delegate.CollectFolder do folder |> Ecto.Changeset.change(%{total_count: total_count, last_updated: last_updated}) |> Ecto.Changeset.put_embed(:collects, collects) - |> Ecto.Changeset.put_embed(:meta, meta) - |> Repo.update() + |> ORM.update_meta(meta) end # check if the article is already in this folder diff --git a/lib/groupher_server/cms/delegates/article_comment.ex b/lib/groupher_server/cms/delegates/article_comment.ex index 7aec3f525..3bca56cbf 100644 --- a/lib/groupher_server/cms/delegates/article_comment.ex +++ b/lib/groupher_server/cms/delegates/article_comment.ex @@ -3,7 +3,7 @@ defmodule GroupherServer.CMS.Delegate.ArticleComment do CURD and operations for article comments """ import Ecto.Query, warn: false - import Helper.Utils, only: [done: 1] + import Helper.Utils, only: [done: 1, strip_struct: 1] import Helper.ErrorCode import GroupherServer.CMS.Utils.Matcher2 @@ -363,11 +363,15 @@ defmodule GroupherServer.CMS.Delegate.ArticleComment do def upvote_article_comment(comment_id, %User{id: user_id}) do with {:ok, comment} <- ORM.find(ArticleComment, comment_id), false <- comment.is_deleted do + # TODO: is user upvoted before? # IO.inspect(comment, label: "the comment") Multi.new() |> Multi.run(:create_comment_upvote, fn _, _ -> ORM.create(ArticleCommentUpvote, %{article_comment_id: comment.id, user_id: user_id}) end) + |> Multi.run(:add_upvoted_user, fn _, _ -> + update_upvoted_user_list(comment, user_id, :add) + end) |> Multi.run(:inc_upvotes_count, fn _, _ -> count_query = from(c in ArticleCommentUpvote, where: c.article_comment_id == ^comment.id) upvotes_count = Repo.aggregate(count_query, :count) @@ -381,6 +385,20 @@ defmodule GroupherServer.CMS.Delegate.ArticleComment do end end + defp update_upvoted_user_list(comment, user_id, opt) do + IO.inspect(comment.meta, label: "update_upvoted_user_list meta") + cur_user_ids = get_in(comment, [:meta, :upvoted_user_ids]) + + user_ids = + case opt do + :add -> [user_id] ++ cur_user_ids + :remove -> cur_user_ids -- [user_id] + end + + meta = comment.meta |> Map.merge(%{upvoted_user_ids: user_ids}) |> strip_struct + ORM.update_meta(comment, meta) + end + @doc "upvote a comment" def undo_upvote_article_comment(comment_id, %User{id: user_id}) do with {:ok, comment} <- ORM.find(ArticleComment, comment_id), diff --git a/lib/groupher_server/cms/delegates/article_curd.ex b/lib/groupher_server/cms/delegates/article_curd.ex index c50821d01..b8a05feb5 100644 --- a/lib/groupher_server/cms/delegates/article_curd.ex +++ b/lib/groupher_server/cms/delegates/article_curd.ex @@ -7,7 +7,7 @@ defmodule GroupherServer.CMS.Delegate.ArticleCURD do import GroupherServer.CMS.Utils.Matcher2 import GroupherServer.CMS.Utils.Matcher, only: [match_action: 2] - import Helper.Utils, only: [done: 1, pick_by: 2, integerfy: 1] + import Helper.Utils, only: [done: 1, pick_by: 2, integerfy: 1, strip_struct: 1] import Helper.ErrorCode alias Helper.{Later, ORM} @@ -443,16 +443,11 @@ defmodule GroupherServer.CMS.Delegate.ArticleCURD do defp exec_update_tags(_content, _), do: {:ok, :pass} - # TODO: move to utils - defp strip_struct(struct) do - struct |> Map.from_struct() |> Map.delete(:id) - end - defp update_viewed_user_list(%{meta: nil} = article, user_id) do new_ids = Enum.uniq([user_id] ++ @default_article_meta.viewed_user_ids) meta = @default_article_meta |> Map.merge(%{viewed_user_ids: new_ids}) - do_update_viewed_user_list(article, meta) + ORM.update_meta(article, meta) end defp update_viewed_user_list(%{meta: meta} = article, user_id) do @@ -462,20 +457,13 @@ defmodule GroupherServer.CMS.Delegate.ArticleCURD do true -> new_ids = Enum.uniq([user_id] ++ meta.viewed_user_ids) meta = meta |> Map.merge(%{viewed_user_ids: new_ids}) |> strip_struct - do_update_viewed_user_list(article, meta) + ORM.update_meta(article, meta) false -> {:ok, :pass} end end - defp do_update_viewed_user_list(article, meta) do - article - |> Ecto.Changeset.change() - |> Ecto.Changeset.put_embed(:meta, meta) - |> Repo.update() - end - defp read_result({:ok, %{inc_views: result}}), do: result |> done() defp read_result({:error, _, result, _steps}) do diff --git a/lib/groupher_server/cms/delegates/article_operation.ex b/lib/groupher_server/cms/delegates/article_operation.ex index 906f5e99c..25b59c367 100644 --- a/lib/groupher_server/cms/delegates/article_operation.ex +++ b/lib/groupher_server/cms/delegates/article_operation.ex @@ -7,6 +7,7 @@ defmodule GroupherServer.CMS.Delegate.ArticleOperation do import Helper.ErrorCode import ShortMaps + import Helper.Utils, only: [strip_struct: 1] import GroupherServer.CMS.Utils.Matcher2 alias Helper.Types, as: T @@ -163,20 +164,15 @@ defmodule GroupherServer.CMS.Delegate.ArticleOperation do @doc "update isEdited meta label if needed" # TODO: diff history def update_edit_status(%{meta: %Embeds.ArticleMeta{is_edited: false} = meta} = content) do - new_meta = - meta - |> Map.from_struct() - |> Map.delete(:id) - |> Map.merge(%{is_edited: true}) - - do_update_meta(content, new_meta) + meta = meta |> strip_struct |> Map.merge(%{is_edited: true}) + ORM.update_meta(content, meta) end # for test or exsiting articles def update_edit_status(%{meta: nil} = content) do - new_meta = Embeds.ArticleMeta.default_meta() |> Map.merge(%{is_edited: true}) + meta = Embeds.ArticleMeta.default_meta() |> Map.merge(%{is_edited: true}) - do_update_meta(content, new_meta) + ORM.update_meta(content, meta) end def update_edit_status(content, _), do: {:ok, content} @@ -186,25 +182,17 @@ defmodule GroupherServer.CMS.Delegate.ArticleOperation do def lock_article_comment( %{meta: %Embeds.ArticleMeta{is_comment_locked: false} = meta} = content ) do - new_meta = + meta = meta |> Map.from_struct() |> Map.delete(:id) |> Map.merge(%{is_comment_locked: true}) - do_update_meta(content, new_meta) + ORM.update_meta(content, meta) end def lock_article_comment(content), do: {:ok, content} - # TODO: put it into ORM helper - defp do_update_meta(%{meta: _} = content, meta_params) do - content - |> Ecto.Changeset.change() - |> Ecto.Changeset.put_embed(:meta, meta_params) - |> Repo.update() - end - # check if the thread has aready enough pined articles defp check_pinned_article_count(community_id, thread) do thread_upcase = thread |> to_string |> String.upcase() diff --git a/lib/groupher_server/cms/delegates/article_reaction.ex b/lib/groupher_server/cms/delegates/article_reaction.ex index 4edf0c7e2..fb65ce41d 100644 --- a/lib/groupher_server/cms/delegates/article_reaction.ex +++ b/lib/groupher_server/cms/delegates/article_reaction.ex @@ -2,10 +2,9 @@ defmodule GroupherServer.CMS.Delegate.ArticleReaction do @moduledoc """ reaction[upvote, collect, watch ...] on article [post, job...] """ - import Helper.Utils, only: [done: 1] - import GroupherServer.CMS.Utils.Matcher2 import Ecto.Query, warn: false + import Helper.Utils, only: [done: 1, strip_struct: 1] # import Helper.ErrorCode import ShortMaps @@ -232,9 +231,8 @@ defmodule GroupherServer.CMS.Delegate.ArticleReaction do :remove -> cur_user_ids -- [user_id] end - updated_meta = @default_article_meta |> Map.merge(%{"#{action}ed_user_ids": updated_user_ids}) - - do_update_article_meta(article, updated_meta) + meta = @default_article_meta |> Map.merge(%{"#{action}ed_user_ids": updated_user_ids}) + ORM.update_meta(article, meta) end defp update_article_reaction_user_list(action, article, user_id, opt) do @@ -246,20 +244,8 @@ defmodule GroupherServer.CMS.Delegate.ArticleReaction do :remove -> cur_user_ids -- [user_id] end - meta = - article.meta - |> Map.merge(%{"#{action}ed_user_ids": updated_user_ids}) - |> Map.from_struct() - |> Map.delete(:id) - - do_update_article_meta(article, meta) - end - - defp do_update_article_meta(article, meta) do - article - |> Ecto.Changeset.change() - |> Ecto.Changeset.put_embed(:meta, meta) - |> Repo.update() + meta = article.meta |> Map.merge(%{"#{action}ed_user_ids": updated_user_ids}) |> strip_struct + ORM.update_meta(article, meta) end defp reaction_result({:ok, %{create_upvote: result}}), do: result |> done() diff --git a/lib/groupher_server/cms/embeds/article_comment_meta.ex b/lib/groupher_server/cms/embeds/article_comment_meta.ex index 54161d381..b9a1855e7 100644 --- a/lib/groupher_server/cms/embeds/article_comment_meta.ex +++ b/lib/groupher_server/cms/embeds/article_comment_meta.ex @@ -11,7 +11,8 @@ defmodule GroupherServer.CMS.Embeds.ArticleCommentMeta do is_article_author_upvoted: false, is_solution: false, is_reply_to_others: false, - report_count: 0 + report_count: 0, + upvoted_user_ids: [] } @doc "for test usage" @@ -24,6 +25,8 @@ defmodule GroupherServer.CMS.Embeds.ArticleCommentMeta do # 用于回复模式,指代这条回复是回复“回复列表其他人的” (方便前端展示) field(:is_reply_to_others, :boolean, default: false) field(:report_count, :integer, default: 0) + + field(:upvoted_user_ids, {:array, :integer}, default: []) end def changeset(struct, params) do diff --git a/lib/helper/orm.ex b/lib/helper/orm.ex index 8341ed1e0..dabf8196a 100644 --- a/lib/helper/orm.ex +++ b/lib/helper/orm.ex @@ -262,6 +262,16 @@ defmodule Helper.ORM do queryable |> count() |> add() end + @doc """ + update meta info for article / comment + """ + def update_meta(queryable, meta) do + queryable + |> Ecto.Changeset.change() + |> Ecto.Changeset.put_embed(:meta, meta) + |> Repo.update() + end + @doc "extract common articles info" @spec extract_articles(T.paged_data(), [Atom.t()]) :: T.paged_article_common() def extract_articles(%{entries: entries} = paged_articles, supported_threads) do diff --git a/lib/helper/utils/utils.ex b/lib/helper/utils/utils.ex index 7cba6f439..633385c42 100644 --- a/lib/helper/utils/utils.ex +++ b/lib/helper/utils/utils.ex @@ -166,6 +166,13 @@ defmodule Helper.Utils do value < target end + @doc """ + convert struct to normal map and remove :id field + """ + def strip_struct(struct) when is_struct(struct) do + struct |> Map.from_struct() |> Map.delete(:id) + end + @doc "html uniq id generator for editorjs" @spec uid(:html, map) :: String.t() def uid(:html, %{"id" => id}) when g_none_empty_str(id), do: id diff --git a/test/groupher_server/cms/article_comment_test.exs b/test/groupher_server/cms/article_comment_test.exs index 1ac5c2eae..c0b3d9356 100644 --- a/test/groupher_server/cms/article_comment_test.exs +++ b/test/groupher_server/cms/article_comment_test.exs @@ -130,6 +130,14 @@ defmodule GroupherServer.Test.CMS.ArticleComment do assert comment.meta.is_article_author_upvoted end + @tag :wip2 + test "article author upvote post comment will update upvoted_user_ids", ~m(post user)a do + comment = "post_comment" + {:ok, comment} = CMS.create_article_comment(:post, post.id, comment, user) + CMS.upvote_article_comment(comment.id, user) + # IO.inspect(hello, label: "the hello") + end + @tag :wip test "user can upvote a job comment", ~m(user job)a do comment = "job_comment" From 7a4f65ed2d3b6c481d66303262780479cec5fcfe Mon Sep 17 00:00:00 2001 From: mydearxym Date: Fri, 7 May 2021 21:37:16 +0800 Subject: [PATCH 2/3] refactor(viewer-upvote): gq-workflow done --- lib/groupher_server/cms/article_comment.ex | 1 + .../cms/delegates/article_comment.ex | 49 ++++++++++++------- .../cms/embeds/article_comment_meta.ex | 2 + lib/groupher_server/cms/utils/loader.ex | 13 +++-- .../schema/cms/cms_types.ex | 19 +------ .../cms/article_comment_test.exs | 24 +++++++-- .../query/cms/article_comment_test.exs | 2 +- 7 files changed, 65 insertions(+), 45 deletions(-) diff --git a/lib/groupher_server/cms/article_comment.ex b/lib/groupher_server/cms/article_comment.ex index 61bead05c..45116cf94 100644 --- a/lib/groupher_server/cms/article_comment.ex +++ b/lib/groupher_server/cms/article_comment.ex @@ -69,6 +69,7 @@ defmodule GroupherServer.CMS.ArticleComment do # 是否置顶 field(:is_pinned, :boolean, default: false) + field(:viewer_has_upvoted, :boolean, default: false, virtual: true) belongs_to(:author, Accounts.User, foreign_key: :author_id) belongs_to(:post, Post, foreign_key: :post_id) diff --git a/lib/groupher_server/cms/delegates/article_comment.ex b/lib/groupher_server/cms/delegates/article_comment.ex index 3bca56cbf..c1208fcfb 100644 --- a/lib/groupher_server/cms/delegates/article_comment.ex +++ b/lib/groupher_server/cms/delegates/article_comment.ex @@ -364,7 +364,6 @@ defmodule GroupherServer.CMS.Delegate.ArticleComment do with {:ok, comment} <- ORM.find(ArticleComment, comment_id), false <- comment.is_deleted do # TODO: is user upvoted before? - # IO.inspect(comment, label: "the comment") Multi.new() |> Multi.run(:create_comment_upvote, fn _, _ -> ORM.create(ArticleCommentUpvote, %{article_comment_id: comment.id, user_id: user_id}) @@ -372,7 +371,7 @@ defmodule GroupherServer.CMS.Delegate.ArticleComment do |> Multi.run(:add_upvoted_user, fn _, _ -> update_upvoted_user_list(comment, user_id, :add) end) - |> Multi.run(:inc_upvotes_count, fn _, _ -> + |> Multi.run(:inc_upvotes_count, fn _, %{add_upvoted_user: comment} -> count_query = from(c in ArticleCommentUpvote, where: c.article_comment_id == ^comment.id) upvotes_count = Repo.aggregate(count_query, :count) ORM.update(comment, %{upvotes_count: upvotes_count}) @@ -385,20 +384,6 @@ defmodule GroupherServer.CMS.Delegate.ArticleComment do end end - defp update_upvoted_user_list(comment, user_id, opt) do - IO.inspect(comment.meta, label: "update_upvoted_user_list meta") - cur_user_ids = get_in(comment, [:meta, :upvoted_user_ids]) - - user_ids = - case opt do - :add -> [user_id] ++ cur_user_ids - :remove -> cur_user_ids -- [user_id] - end - - meta = comment.meta |> Map.merge(%{upvoted_user_ids: user_ids}) |> strip_struct - ORM.update_meta(comment, meta) - end - @doc "upvote a comment" def undo_upvote_article_comment(comment_id, %User{id: user_id}) do with {:ok, comment} <- ORM.find(ArticleComment, comment_id), @@ -410,7 +395,10 @@ defmodule GroupherServer.CMS.Delegate.ArticleComment do user_id: user_id }) end) - |> Multi.run(:desc_upvotes_count, fn _, _ -> + |> Multi.run(:remove_upvoted_user, fn _, _ -> + update_upvoted_user_list(comment, user_id, :remove) + end) + |> Multi.run(:desc_upvotes_count, fn _, %{remove_upvoted_user: comment} -> count_query = from(c in ArticleCommentUpvote, where: c.article_comment_id == ^comment_id) upvotes_count = Repo.aggregate(count_query, :count) @@ -437,6 +425,7 @@ defmodule GroupherServer.CMS.Delegate.ArticleComment do |> ORM.paginater(~m(page size)a) |> set_viewer_emotion_ifneed(user) |> add_pined_comments_ifneed(thread, article_id, filters) + |> mark_viewer_has_upvoted(user) |> done() end end @@ -453,6 +442,7 @@ defmodule GroupherServer.CMS.Delegate.ArticleComment do |> QueryBuilder.filter_pack(filters) |> ORM.paginater(~m(page size)a) |> set_viewer_emotion_ifneed(user) + |> mark_viewer_has_upvoted(user) |> done() end @@ -625,6 +615,18 @@ defmodule GroupherServer.CMS.Delegate.ArticleComment do %{paged_comments | entries: new_entries} end + defp mark_viewer_has_upvoted(paged_comments, nil), do: paged_comments + + defp mark_viewer_has_upvoted(%{entries: entries} = paged_comments, %User{} = user) do + entries = + Enum.map( + entries, + &Map.merge(&1, %{viewer_has_upvoted: Enum.member?(&1.meta.upvoted_user_ids, user.id)}) + ) + + Map.merge(paged_comments, %{entries: entries}) + end + defp get_article(%ArticleComment{post_id: post_id} = comment) when not is_nil(post_id) do with {:ok, article} <- ORM.find(Post, comment.post_id, preload: [author: :user]) do {:post, article} @@ -692,6 +694,19 @@ defmodule GroupherServer.CMS.Delegate.ArticleComment do end end + defp update_upvoted_user_list(comment, user_id, opt) do + cur_user_ids = get_in(comment, [:meta, :upvoted_user_ids]) + + user_ids = + case opt do + :add -> [user_id] ++ cur_user_ids + :remove -> cur_user_ids -- [user_id] + end + + meta = comment.meta |> Map.merge(%{upvoted_user_ids: user_ids}) |> strip_struct + ORM.update_meta(comment, meta) + end + defp upsert_comment_result({:ok, %{create_article_comment: result}}), do: {:ok, result} defp upsert_comment_result({:ok, %{add_reply_to: result}}), do: {:ok, result} defp upsert_comment_result({:ok, %{check_article_author_upvoted: result}}), do: {:ok, result} diff --git a/lib/groupher_server/cms/embeds/article_comment_meta.ex b/lib/groupher_server/cms/embeds/article_comment_meta.ex index b9a1855e7..9675c2f6c 100644 --- a/lib/groupher_server/cms/embeds/article_comment_meta.ex +++ b/lib/groupher_server/cms/embeds/article_comment_meta.ex @@ -3,6 +3,8 @@ defmodule GroupherServer.CMS.Embeds.ArticleCommentMeta do general article comment meta info """ use Ecto.Schema + use Accessible + import Ecto.Changeset @optional_fields ~w(is_article_author_upvoted is_solution report_count is_reply_to_others)a diff --git a/lib/groupher_server/cms/utils/loader.ex b/lib/groupher_server/cms/utils/loader.ex index 659e23cb0..699cfde07 100644 --- a/lib/groupher_server/cms/utils/loader.ex +++ b/lib/groupher_server/cms/utils/loader.ex @@ -9,7 +9,6 @@ defmodule GroupherServer.CMS.Utils.Loader do alias CMS.{ Author, - ArticleCommentUpvote, CommunityEditor, CommunitySubscriber, CommunityThread, @@ -165,12 +164,12 @@ defmodule GroupherServer.CMS.Utils.Loader do |> QueryBuilder.members_pack(args) end - def query({"articles_comments_upvotes", ArticleCommentUpvote}, %{ - viewer_did: _, - cur_user: cur_user - }) do - ArticleCommentUpvote |> where([f], f.user_id == ^cur_user.id) - end + # def query({"articles_comments_upvotes", ArticleCommentUpvote}, %{ + # viewer_did: _, + # cur_user: cur_user + # }) do + # ArticleCommentUpvote |> where([f], f.user_id == ^cur_user.id) + # end # default loader def query(queryable, _args) do diff --git a/lib/groupher_server_web/schema/cms/cms_types.ex b/lib/groupher_server_web/schema/cms/cms_types.ex index 5e42563e9..5dabaf92f 100644 --- a/lib/groupher_server_web/schema/cms/cms_types.ex +++ b/lib/groupher_server_web/schema/cms/cms_types.ex @@ -339,15 +339,7 @@ defmodule GroupherServerWeb.Schema.CMS.Types do field(:meta, :article_comment_meta) field(:replies_count, :integer) field(:reply_to, :article_comment_reply) - - field :viewer_has_upvoted, :boolean do - arg(:viewer_did, :viewer_did_type, default_value: :viewer_did) - - middleware(M.Authorize, :login) - middleware(M.PutCurrentUser) - resolve(dataloader(CMS, :upvotes)) - middleware(M.ViewerDidConvert) - end + field(:viewer_has_upvoted, :boolean) timestamp_fields() end @@ -365,15 +357,8 @@ defmodule GroupherServerWeb.Schema.CMS.Types do field(:reply_to, :article_comment_reply) field(:replies, list_of(:article_comment_reply)) field(:replies_count, :integer) - # field(:viewer_has_upvoted, :boolean, resolve: dataloader(CMS, :)) - field :viewer_has_upvoted, :boolean do - arg(:viewer_did, :viewer_did_type, default_value: :viewer_did) - middleware(M.Authorize, :login) - middleware(M.PutCurrentUser) - resolve(dataloader(CMS, :upvotes)) - middleware(M.ViewerDidConvert) - end + field(:viewer_has_upvoted, :boolean) timestamp_fields() end diff --git a/test/groupher_server/cms/article_comment_test.exs b/test/groupher_server/cms/article_comment_test.exs index c0b3d9356..c8d9679fa 100644 --- a/test/groupher_server/cms/article_comment_test.exs +++ b/test/groupher_server/cms/article_comment_test.exs @@ -131,11 +131,29 @@ defmodule GroupherServer.Test.CMS.ArticleComment do end @tag :wip2 - test "article author upvote post comment will update upvoted_user_ids", ~m(post user)a do + test "user upvote post comment will add id to upvoted_user_ids", ~m(post user)a do comment = "post_comment" {:ok, comment} = CMS.create_article_comment(:post, post.id, comment, user) - CMS.upvote_article_comment(comment.id, user) - # IO.inspect(hello, label: "the hello") + {:ok, comment} = CMS.upvote_article_comment(comment.id, user) + + assert user.id in comment.meta.upvoted_user_ids + end + + @tag :wip2 + test "user undo upvote post comment will remove id from upvoted_user_ids", + ~m(post user user2)a do + comment = "post_comment" + {:ok, comment} = CMS.create_article_comment(:post, post.id, comment, user) + {:ok, _comment} = CMS.upvote_article_comment(comment.id, user) + {:ok, comment} = CMS.upvote_article_comment(comment.id, user2) + + assert user2.id in comment.meta.upvoted_user_ids + assert user.id in comment.meta.upvoted_user_ids + + {:ok, comment} = CMS.undo_upvote_article_comment(comment.id, user2) + + assert user.id in comment.meta.upvoted_user_ids + assert user2.id not in comment.meta.upvoted_user_ids end @tag :wip diff --git a/test/groupher_server_web/query/cms/article_comment_test.exs b/test/groupher_server_web/query/cms/article_comment_test.exs index 964c7dbfb..980832477 100644 --- a/test/groupher_server_web/query/cms/article_comment_test.exs +++ b/test/groupher_server_web/query/cms/article_comment_test.exs @@ -473,7 +473,7 @@ defmodule GroupherServer.Test.Query.ArticleComment do |> get_in(["emotions", "viewerHasDownvoteed"]) end - @tag :wip + @tag :wip2 test "comment should have viewer has upvoted flag", ~m(user_conn post user)a do total_count = 10 page_size = 12 From acd0c5e1aad6012504f8a30c3cd89333eb5052e4 Mon Sep 17 00:00:00 2001 From: mydearxym Date: Fri, 7 May 2021 21:51:29 +0800 Subject: [PATCH 3/3] chore: clean up --- lib/groupher_server/cms/delegates/article_comment.ex | 7 ------- 1 file changed, 7 deletions(-) diff --git a/lib/groupher_server/cms/delegates/article_comment.ex b/lib/groupher_server/cms/delegates/article_comment.ex index c1208fcfb..cec7fcd27 100644 --- a/lib/groupher_server/cms/delegates/article_comment.ex +++ b/lib/groupher_server/cms/delegates/article_comment.ex @@ -281,13 +281,6 @@ defmodule GroupherServer.CMS.Delegate.ArticleComment do end) |> Repo.transaction() |> upsert_comment_result - - # is not work this way, why? - # updated_emotions = - # Map.merge(comment.emotions, %{ - # downvote_count: comment.emotions.downvote_count + Enum.random([1, 2, 3]), - # tada_count: comment.emotions.tada_count + Enum.random([1, 2, 3]) - # }) end end