API 95%完成。メール未テスト、早野API未テスト、ユーザー情報・削除は動いてない。
This commit is contained in:
98
rog/views.py
98
rog/views.py
@ -332,6 +332,7 @@ class UserUpdateAPI(generics.UpdateAPIView):
|
||||
|
||||
return Response(serializer.data)
|
||||
|
||||
# User 情報取得
|
||||
class UserAPI(generics.RetrieveAPIView):
|
||||
permission_classes = [permissions.IsAuthenticated,]
|
||||
serializer_class = UserSerializer
|
||||
@ -810,6 +811,28 @@ class EntryViewSet(viewsets.ModelViewSet):
|
||||
def perform_create(self, serializer):
|
||||
serializer.save(owner=self.request.user)
|
||||
|
||||
def register_team(self, entry):
|
||||
api_url = f"{settings.FRONTEND_URL}/gifuroge/register_team"
|
||||
user = self.request.user
|
||||
|
||||
data = {
|
||||
"zekken_number": entry.team.zekken_number,
|
||||
"event_code": entry.event.event_code,
|
||||
"team_name": entry.team.team_name,
|
||||
"class_name": entry.category.category_name,
|
||||
"password": user.password # パスワードの扱いに注意が必要です
|
||||
}
|
||||
|
||||
try:
|
||||
response = requests.post(api_url, data=data)
|
||||
response.raise_for_status()
|
||||
logger.info(f"Team registered successfully for entry {entry.id}")
|
||||
except requests.RequestException as e:
|
||||
logger.error(f"Failed to register team for entry {entry.id}. Error: {str(e)}")
|
||||
# エラーが発生しても、エントリー自体は作成されています
|
||||
# 必要に応じて、ここでエラーハンドリングを追加できます
|
||||
|
||||
|
||||
def update(self, request, *args, **kwargs):
|
||||
partial = kwargs.pop('partial', False)
|
||||
instance = self.get_object()
|
||||
@ -1133,20 +1156,75 @@ class RegisterView(APIView):
|
||||
return Response({'message': 'Verification email sent'}, status=status.HTTP_201_CREATED)
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
class ResendInvitationEmailView(APIView):
|
||||
def post(self, request):
|
||||
email = request.data.get('email')
|
||||
if not email:
|
||||
return Response({"error": "メールアドレスを指定してください。"}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
try:
|
||||
temp_user = TempUser.objects.get(email=email)
|
||||
verification_url = request.build_absolute_uri(
|
||||
reverse('verify-email', kwargs={'verification_code': temp_user.verification_code})
|
||||
)
|
||||
send_verification_email(temp_user, verification_url)
|
||||
logger.info(f"招待メールを再送信しました。Email: {email}")
|
||||
return Response({"message": "招待メールを再送信しました。"}, status=status.HTTP_200_OK)
|
||||
except ObjectDoesNotExist:
|
||||
logger.warning(f"仮登録されていないメールアドレスに対して招待メールの再送信が試みられました。Email: {email}")
|
||||
return Response({"error": "指定されたメールアドレスは仮登録されていません。"}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
|
||||
|
||||
|
||||
class TempUserRegistrationView(APIView):
|
||||
def post(self, request):
|
||||
serializer = TempUserRegistrationSerializer(data=request.data)
|
||||
if serializer.is_valid():
|
||||
temp_user = serializer.save()
|
||||
verification_code = uuid.uuid4()
|
||||
temp_user.verification_code = verification_code
|
||||
temp_user.save()
|
||||
email = request.data.get('email')
|
||||
|
||||
# 本登録済みのユーザーチェック
|
||||
if CustomUser.objects.filter(email=email).exists():
|
||||
logger.warning(f"既に本登録されているメールアドレスでの仮登録が試みられました。Email: {email}")
|
||||
return Response({"error": "このメールアドレスは既に本登録されています。"}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
# 仮登録済みのユーザーチェック
|
||||
try:
|
||||
temp_user = TempUser.objects.get(email=email)
|
||||
verification_url = request.build_absolute_uri(
|
||||
reverse('verify-email', kwargs={'verification_code': verification_code})
|
||||
reverse('verify-email', kwargs={'verification_code': temp_user.verification_code})
|
||||
)
|
||||
send_verification_email(temp_user,verification_url) #招待メールを送る。
|
||||
return Response({"message": "仮登録が完了しました。招待メールを送信しました。"}, status=status.HTTP_201_CREATED)
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
send_verification_email(temp_user, verification_url)
|
||||
logger.info(f"既に仮登録されているユーザーに招待メールを再送信しました。Email: {email}")
|
||||
return Response({"message": "既に仮登録は行われていますが、招待メールを再送信しました。"}, status=status.HTTP_200_OK)
|
||||
except TempUser.DoesNotExist:
|
||||
# 新規仮登録
|
||||
serializer = TempUserRegistrationSerializer(data=request.data)
|
||||
if serializer.is_valid():
|
||||
temp_user = serializer.save()
|
||||
verification_code = uuid.uuid4()
|
||||
temp_user.verification_code = verification_code
|
||||
temp_user.save()
|
||||
verification_url = request.build_absolute_uri(
|
||||
reverse('verify-email', kwargs={'verification_code': verification_code})
|
||||
)
|
||||
send_verification_email(temp_user, verification_url)
|
||||
logger.info(f"新規ユーザーを仮登録し、招待メールを送信しました。Email: {email}")
|
||||
return Response({"message": "仮登録が完了しました。招待メールを送信しました。"}, status=status.HTTP_201_CREATED)
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
|
||||
#serializer = TempUserRegistrationSerializer(data=request.data)
|
||||
#if serializer.is_valid():
|
||||
# temp_user = serializer.save()
|
||||
# verification_code = uuid.uuid4()
|
||||
# temp_user.verification_code = verification_code
|
||||
# temp_user.save()
|
||||
# verification_url = request.build_absolute_uri(
|
||||
# reverse('verify-email', kwargs={'verification_code': verification_code})
|
||||
# )
|
||||
# send_verification_email(temp_user,verification_url) #招待メールを送る。
|
||||
# return Response({"message": "仮登録が完了しました。招待メールを送信しました。"}, status=status.HTTP_201_CREATED)
|
||||
#return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
# アクティベーション
|
||||
class VerifyEmailView(APIView):
|
||||
|
||||
Reference in New Issue
Block a user