mirror of
https://github.com/mgerb/classic-wow-forums
synced 2026-01-11 17:42:48 +00:00
server - update user with character info
This commit is contained in:
@@ -45,7 +45,7 @@ defmodule MyApp.BattleNet.User do
|
||||
defp parse_character_response({:ok, %HTTPoison.Response{body: body}}, user_id) do
|
||||
case Poison.decode(body) do
|
||||
{:ok, data} ->
|
||||
Cachex.set(:myapp, "usr_char:#{user_id}", data, ttl: :timer.minutes(1)) # 1 minute
|
||||
Cachex.set(:myapp, "usr_char:#{user_id}", data, ttl: :timer.minutes(10)) # 10 minutes
|
||||
{:ok, data}
|
||||
{:error, error} -> {:error, error}
|
||||
end
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user