Skip to content

Commit

Permalink
Merge pull request #15 from Qwizi/0.0.19
Browse files Browse the repository at this point in the history
Fix issue when creating guild
  • Loading branch information
Qwizi committed Apr 21, 2024
2 parents 59ea7c6 + d272aec commit 2685abc
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 4 deletions.
10 changes: 10 additions & 0 deletions .idea/material_theme_project_new.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion src/accounts/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,11 @@ def steam_callback(request):
discord_user_session = request.session.get("dc_user", None)
discord_user = DiscordUser.objects.get(user_id=discord_user_session["id"])
player, _ = Player.objects.get_or_create(
discord_user=discord_user, steam_user=steam_user
discord_user=discord_user
)
if not player.steam_user:
player.steam_user = steam_user
player.save()
user = User.objects.get(username=discord_user.username)
user.player = player
user.save()
Expand Down
6 changes: 5 additions & 1 deletion src/guilds/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from prefix_id import PrefixIDField
from rest_framework_api_key.models import AbstractAPIKey

from players.models import DiscordUser
from players.models import DiscordUser, Player

UserModel = get_user_model()

Expand All @@ -14,7 +14,11 @@
class GuildManager(models.Manager):
def create_guild(self, owner_id: str, owner_username: str, **kwargs):
dc_owner_user, _ = DiscordUser.objects.get_or_create(user_id=owner_id, username=owner_username)
player, _ = Player.objects.get_or_create(discord_user=dc_owner_user)
owner_user, _ = UserModel.objects.get_or_create(username=owner_username)
if not owner_user.player:
owner_user.player = player
owner_user.save()
guild = self.create(owner=owner_user, **kwargs)
guild.save()
return guild
Expand Down
3 changes: 3 additions & 0 deletions src/guilds/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ def test_get_guild(client_with_api_key, guild):
assert response.data["name"] == guild.name
assert response.data["owner"] is not None
assert response.data["guild_id"] == guild.guild_id
assert response.data["owner"]["username"] == guild.owner.username
assert response.data["owner"]["player"]["id"] == guild.owner.player.id
assert response.data["owner"]["player"]["discord_user"]["id"] == guild.owner.player.discord_user.id

@pytest.mark.django_db
def test_create_guild(client_with_api_key, guild_data):
Expand Down
19 changes: 19 additions & 0 deletions src/players/migrations/0005_alter_player_steam_user.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Generated by Django 5.0.4 on 2024-04-21 14:54

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('players', '0004_alter_team_leader'),
]

operations = [
migrations.AlterField(
model_name='player',
name='steam_user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='players.steamuser'),
),
]
2 changes: 1 addition & 1 deletion src/players/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def __str__(self):
class Player(models.Model):
id = PrefixIDField(primary_key=True, prefix="player")
discord_user = models.ForeignKey(DiscordUser, on_delete=models.CASCADE)
steam_user = models.ForeignKey(SteamUser, on_delete=models.CASCADE)
steam_user = models.ForeignKey(SteamUser, on_delete=models.CASCADE, null=True, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)

Expand Down
2 changes: 1 addition & 1 deletion src/players/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class Meta:

class PlayerSerializer(serializers.ModelSerializer):
discord_user = DiscordUserSerializer()
steam_user = SteamUserSerializer()
steam_user = SteamUserSerializer(allow_null=True)

class Meta:
model = Player
Expand Down

0 comments on commit 2685abc

Please sign in to comment.