From 763ea5331b1977dd949c776215f2c7719f81ee9a Mon Sep 17 00:00:00 2001 From: Logan Hunt Date: Wed, 20 Apr 2022 16:03:17 -0600 Subject: Initial chat box; man phoenix does not have the best docs --- lib/aggiedit/rooms.ex | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lib/aggiedit/rooms.ex') diff --git a/lib/aggiedit/rooms.ex b/lib/aggiedit/rooms.ex index 41df588..239dd90 100644 --- a/lib/aggiedit/rooms.ex +++ b/lib/aggiedit/rooms.ex @@ -94,7 +94,7 @@ defmodule Aggiedit.Rooms do end def vote_count(post) do - votes = post + post |> Repo.preload(:votes) |> Map.get(:votes) |> Enum.map(fn vote -> if vote.is_up, do: 1, else: -1 end) @@ -105,11 +105,17 @@ defmodule Aggiedit.Rooms do is_up = direction == "upvote" vote = %Vote{is_up: is_up, user: user, post: post} |> Repo.insert(on_conflict: [set: [is_up: is_up]], conflict_target: [:user_id, :post_id]) + post = change_post(post, %{score: vote_count(post)}) |> Repo.update() + broadcast_post_over_room(post, :post_voted) end + def comment_post(%Post{} = post, %User{} = user, comment) do + Repo.insert(%Comment{comment: comment, user: user, post: post}) + end + defp broadcast_post_over_room({:error, _reason}=error, _event), do: error defp broadcast_post_over_room({:ok, post}, event) do PubSub.broadcast(Aggiedit.PubSub, "room:#{post.room_id}:posts", {event, post}) -- cgit v1.2.3-70-g09d2