feat(submissions): scoped submissions per user/matchs, sync from polylan
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
|
||||
from games.models import EventGame
|
||||
from submissions.tasks import sync_all_event_games_task, sync_event_game_scopes_task
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Queue a sync of Scopes (matches) and their assigned users from the legacy AAndT API."
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument(
|
||||
"--event-game",
|
||||
type=int,
|
||||
default=None,
|
||||
help=(
|
||||
"Only queue a sync for the EventGame with this id. "
|
||||
"Default: every EventGame with an AAndT token configured."
|
||||
),
|
||||
)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
event_game_id = options["event_game"]
|
||||
|
||||
if event_game_id is not None:
|
||||
if not EventGame.objects.filter(id=event_game_id).exists():
|
||||
raise CommandError(f"No EventGame with id={event_game_id}")
|
||||
|
||||
sync_event_game_scopes_task.enqueue(event_game_id)
|
||||
self.stdout.write(
|
||||
self.style.SUCCESS(f"Queued sync for EventGame {event_game_id}")
|
||||
)
|
||||
return
|
||||
|
||||
if (
|
||||
not EventGame.objects.exclude(apibot_token__isnull=True)
|
||||
.exclude(apibot_token="")
|
||||
.exists()
|
||||
):
|
||||
self.stdout.write(
|
||||
self.style.WARNING("No EventGame has an AAndT token configured.")
|
||||
)
|
||||
return
|
||||
|
||||
sync_all_event_games_task.enqueue()
|
||||
self.stdout.write(
|
||||
self.style.SUCCESS("Queued sync for every EventGame with an AAndT token.")
|
||||
)
|
||||
Reference in New Issue
Block a user