1
0
mirror of https://github.com/mgerb/classic-wow-forums synced 2026-01-11 09:32:51 +00:00

server - update user with character info

This commit is contained in:
2018-01-11 20:24:55 -06:00
parent 991e1bfe5a
commit dc7149eb8b
7 changed files with 91 additions and 62 deletions

View File

@@ -10,6 +10,11 @@ defmodule MyApp.Data.User do
field :battle_net_id, :integer
field :battletag, :string
field :permissions, :string, default: "user" # admin, mod, user
field :character_guild, :string
field :character_name, :string
field :character_class, :string
field :character_realm, :string
field :character_avatar, :string
timestamps()
end
@@ -20,6 +25,25 @@ defmodule MyApp.Data.User do
|> unique_constraint(:battle_net_id)
end
defp update_char_changeset(user, params \\ %{}) do
user
|> cast(params, [:character_guild, :character_name, :character_class, :character_realm, :character_avatar])
|> validate_required([:character_name, :character_class, :character_realm, :character_avatar])
end
def update_character(params) do
{:ok, data} = Repo.transaction(fn ->
user = Repo.get(__MODULE__, Map.get(params, "id"))
# remove columns from data because we need to update all of them
|> Map.drop([:character_realm, :character_name, :character_guild, :character_class, :character_avatar])
output = user
|> update_char_changeset(params)
|> Repo.update
|> Data.Util.process_insert_or_update
end)
data
end
@spec get_user(integer) :: nil | map
defp get_user(battle_net_id) do
query = from u in "user",