ACTUALLY WORKING
This commit is contained in:
parent
ffa6d3bc55
commit
02cc1072c0
@ -1,9 +1,31 @@
|
||||
defmodule BwcWeb.SessionController do
|
||||
use BwcWeb, :controller
|
||||
|
||||
def update(conn, params) do
|
||||
cards = Bwc.list_cards()
|
||||
player = Map.get(params, "player")
|
||||
new_username = Map.get(player, "username")
|
||||
old_username = Map.get(player, "old_username")
|
||||
case {old_username, new_username} |> Bwc.change_name() do
|
||||
{:ok, player} ->
|
||||
conn
|
||||
|> put_session(:username, player.username)
|
||||
|> put_flash(:info, "You are now known as '#{player.username}'.")
|
||||
|> redirect(to: Routes.card_path(conn, :index, cards))
|
||||
{:error, player} ->
|
||||
conn |> render("new.html", player: player, method: :update)
|
||||
end
|
||||
end
|
||||
|
||||
def new(conn, _params) do
|
||||
player = Bwc.new_player()
|
||||
render(conn, "new.html", player: player)
|
||||
method = cond do
|
||||
conn |> get_session(:username) == "Nobody" ->
|
||||
:create
|
||||
true ->
|
||||
:update
|
||||
end
|
||||
render(conn, "new.html", player: player, method: method)
|
||||
end
|
||||
|
||||
def set_name(conn, params) do
|
||||
|
||||
@ -6,12 +6,12 @@ defmodule BwcWeb.Roster do
|
||||
def call(conn, _opts) do
|
||||
import Logger
|
||||
|
||||
player =
|
||||
{:ok, player} =
|
||||
conn
|
||||
|> get_session(:username)
|
||||
|> case do
|
||||
nil -> "Nobody"
|
||||
username -> Bwc.get_player_by(%{username: username})
|
||||
nil -> {:ok, "Nobody"}
|
||||
username -> Bwc.get_or_create_player(username)
|
||||
end
|
||||
Logger.debug(player)
|
||||
assign(conn, :current_player, player)
|
||||
|
||||
@ -22,6 +22,8 @@ defmodule BwcWeb.Router do
|
||||
|
||||
get "/join", SessionController, :new
|
||||
post "/join", SessionController, :create
|
||||
post "/rename", SessionController, :update
|
||||
put "/rename", SessionController, :update
|
||||
get "/leave", SessionController, :delete
|
||||
|
||||
get "/create", CardController, :new
|
||||
|
||||
@ -1,8 +1,13 @@
|
||||
<%= form_for @player, Routes.session_path(@conn, :create), fn(f) -> %>
|
||||
<%= form_for @player, Routes.session_path(@conn, @method), fn(f) -> %>
|
||||
|
||||
<div class="new-session uk-panel uk-panel-box uk-panel-box-secondary uk-padding uk-flex uk-flex-column">
|
||||
<div class="uk-flex-item">
|
||||
<%= if @current_player do %>
|
||||
<%= text_input f, :username, "placeholder": @current_player.username, "value": @current_player.username %>
|
||||
<%= text_input f, :old_username, "value": @current_player.username, "class": "uk-hidden" %>
|
||||
<% else %>
|
||||
<%= text_input f, :username, "placeholder": "Join the game as..." %>
|
||||
<% end %>
|
||||
<%= error_tag f, :username %>
|
||||
</div>
|
||||
<div>
|
||||
@ -12,7 +17,11 @@
|
||||
<div class="uk-flex uk-flex-center">
|
||||
<ul class="uk-subnav uk-subnav-pill" style="margin-bottom:0px;">
|
||||
<li>
|
||||
<%= if @current_player do %>
|
||||
<%= submit "Change Name", class: "uk-active uk-subnav-pill", id: "joinGame" %>
|
||||
<% else %>
|
||||
<%= submit "Join", class: "uk-active uk-subnav-pill", id: "joinGame" %>
|
||||
<% end %>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user