Skip to content

Refactor i uzupełnienie swaggera do metod auth #81

@MoonPrincess06

Description

@MoonPrincess06

Co robimy

Refactor + uzupełnienie Swaggera (drf-spectacular) dla auth (Solvro OAuth, USOS OAuth, OTP, JWT) z przeniesieniem endpointów na DRF views, żeby w
ogóle były generowane w schemacie.

Zakres plików

  • users/views.py: login, authorize, login_usos, authorize_usos przenieść na APIView/GenericAPIView; dopracować GenerateOtpView, LoginOtpView,
    LoginLinkView.
  • testownik_core/urls.py: ścieżki /login, /login/usos, /authorize, /authorize/usos, /token, /token/refresh.
  • users/serializers.py: opcjonalne schematy tokenów/odpowiedzi.

Konkretne zadania

  1. Uwidocznienie w Swaggerze
    • Zamień funkcje redirectujące na klasy APIView/GenericAPIView, albo opakuj w @api_view + @extend_schema. Preferencja: klasy DRF → lepsza
      detekcja przez spectacular.
    • Dla redirectów ustaw exclude=True albo responses={302: ...} (z paramami query).
  2. Solvro OAuth (/login, /authorize)
    • Opis parametrów query: jwt, redirect, confirm_user.
    • /authorize: 302 z access_token/refresh_token lub error=no_email.
  3. USOS OAuth (/login/usos, /authorize/usos)
    • Parametry: jwt, redirect, confirm_user, retry.
    • Opis błędów: invalid_token, authorization_failed, usos_unavailable, not_student.
  4. OTP (GenerateOtpView, LoginOtpView, LoginLinkView)
    • Upewnij się, że request/response i kody 200/400/404 są zgodne z realnymi komunikatami (Invalid OTP code, OTP code expired or retries limit
      reached, Invalid or expired login link).
  5. JWT (/token, /token/refresh)
    • Dodaj/odnieś się do schematu tokenów (spójne nazwy pól: access/refresh lub access_token/refresh_token).
  6. Przykłady i parametry
    • Dodaj OpenApiParameter dla query w redirectach.
    • Dodaj examples dla happy path + error dla każdego endpointu.

DoD

  • /swagger pokazuje wszystkie endpointy auth (albo świadomie ukryte redirecty) z poprawnymi request/response/examples.
  • Brak zmian w zachowaniu (redirecty działają jak dotąd).
  • Błędy opisane, nazwy pól tokenów spójne.
  • Przeniesienie na DRF view’y nie wprowadza regresji.

QA

  • Sprawdź /swagger/ i /schema – widoczność i poprawność parametrów/odpowiedzi (w tym 302 jeśli opisujesz).
  • Ręcznie sprawdź OTP (valid/invalid/expired) vs opis.
  • Opcjonalnie zrób szybki dry-run Solvro/USOS z jwt=true, czy dokumentowane paramy faktycznie wracają w redirect URL.

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationenhancementNew feature or requestgood first issueGood for newcomers

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions