first commit

This commit is contained in:
javad committed 2026-06-15 10:57:28 +03:30
commit 3e4574dcdd
163 files changed
+3559

No files matched your search

+81
View File
@@ -0,0 +1,81 @@
from datetime import datetime, timedelta
from django.contrib.auth import get_user_model
from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework import serializers
from apps.user_auth.auth_service import SMSAuth
from rest_framework.response import Response
from apps.user_auth.models import SmsOtp as SmsOtpModel
from apps.user_auth.services import send_otp_code, sms_auth, login_by_user_pass
from apps.user_auth.token_service import get_refresh_token
from rest_framework import status
from rest_framework import exceptions
CUserModel = get_user_model()
class MojriByMobileApiView(APIView):
class InputSerializer(serializers.Serializer):
mobile = serializers.IntegerField()
def post(self, request):
serializer = self.InputSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
user_mobile = serializer.validated_data.get('mobile', None)
send_otp_code(user_mobile=user_mobile)
return Response({'status': 'otp code send'}, status=status.HTTP_200_OK)
class MojriMobileVerificationApiView(APIView):
class InputSerializer(serializers.Serializer):
mobile = serializers.IntegerField()
otp_code = serializers.IntegerField()
def post(self, request):
serializer = self.InputSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
token = sms_auth(**serializer.validated_data)
return Response(token)
class LoginAdmin(APIView):
class InputSerializers(serializers.Serializer):
username = serializers.CharField(required=True)
password = serializers.CharField(required=True)
def post(self, request):
serializer = self.InputSerializers(data=request.data)
serializer.is_valid(raise_exception=True)
token = login_by_user_pass(**serializer.validated_data)
return Response(token, status=status.HTTP_200_OK)
class CustomRefreshToken(APIView):
class InputSerializer(serializers.Serializer):
refresh = serializers.CharField()
def post(self, request):
serializer = self.InputSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
ref_token = serializer.validated_data.get('refresh')
token = get_refresh_token(ref_token=ref_token)
return Response(token)