user inquiry with phone number
This commit is contained in:
parent
2d444fd270
commit
e441d3eedc
3 changed files with 28 additions and 2 deletions
|
|
@ -79,6 +79,25 @@ class RequestOTPSerializer(serializers.ModelSerializer):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
class UserInquirySerializer(serializers.ModelSerializer):
|
||||||
|
phone_number = serializers.CharField(required=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = User
|
||||||
|
fields = ('avatar', 'name', 'username', "first_name", "last_name", "uuid", 'phone_number')
|
||||||
|
read_only_fields = ['avatar', 'name', 'username', 'first_name', 'last_name', "uuid"]
|
||||||
|
|
||||||
|
def save(self, **kwargs):
|
||||||
|
# TODO: move it to query set
|
||||||
|
validated_data = self.validated_data
|
||||||
|
user = User.objects.filter(phone_number=validated_data['phone_number']).first()
|
||||||
|
if not user:
|
||||||
|
user = User.objects.create_user(**validated_data)
|
||||||
|
|
||||||
|
self.instance = user
|
||||||
|
return user
|
||||||
|
|
||||||
|
|
||||||
class ChangePasswordSerializer(serializers.Serializer):
|
class ChangePasswordSerializer(serializers.Serializer):
|
||||||
old_password = serializers.CharField(required=True)
|
old_password = serializers.CharField(required=True)
|
||||||
old_password_field = serializers.CharField(default='password')
|
old_password_field = serializers.CharField(default='password')
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ from apps.users.forms import OTPAuthenticationForm
|
||||||
from apps.users.models import User
|
from apps.users.models import User
|
||||||
from apps.users.provinces_and_cities import State
|
from apps.users.provinces_and_cities import State
|
||||||
from apps.users.serializers import PublicUserSerializer, AccountSerializer, RequestOTPSerializer, \
|
from apps.users.serializers import PublicUserSerializer, AccountSerializer, RequestOTPSerializer, \
|
||||||
ChangePasswordSerializer
|
ChangePasswordSerializer, UserInquirySerializer
|
||||||
|
|
||||||
UserModel = get_user_model()
|
UserModel = get_user_model()
|
||||||
|
|
||||||
|
|
@ -60,6 +60,12 @@ class RequestOTPView(generics.CreateAPIView):
|
||||||
required_scopes = []
|
required_scopes = []
|
||||||
|
|
||||||
|
|
||||||
|
class UserInquiryView(generics.CreateAPIView):
|
||||||
|
serializer_class = UserInquirySerializer
|
||||||
|
permission_classes = [IsAuthenticatedOrTokenHasScope]
|
||||||
|
required_scopes = ['accounts.profile:inquiry']
|
||||||
|
|
||||||
|
|
||||||
class ChangePasswordView(generics.UpdateAPIView):
|
class ChangePasswordView(generics.UpdateAPIView):
|
||||||
permission_classes = [IsAuthenticatedOrTokenHasScope]
|
permission_classes = [IsAuthenticatedOrTokenHasScope]
|
||||||
serializer_class = ChangePasswordSerializer
|
serializer_class = ChangePasswordSerializer
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ from django.contrib import admin
|
||||||
from apps.transactions.views import TransactionList, TransactionDetail, TransactionPay, TransactionReceipt, \
|
from apps.transactions.views import TransactionList, TransactionDetail, TransactionPay, TransactionReceipt, \
|
||||||
WithdrawVerify, WithdrawSubmit, DepositSubmit, DepositVerify
|
WithdrawVerify, WithdrawSubmit, DepositSubmit, DepositVerify
|
||||||
from apps.users.views import UserListView, UserDetailView, AccountView, RequestOTPView, ChangePasswordView, \
|
from apps.users.views import UserListView, UserDetailView, AccountView, RequestOTPView, ChangePasswordView, \
|
||||||
OTPLoginView, home, ProvinceApiView
|
OTPLoginView, home, ProvinceApiView, UserInquiryView
|
||||||
from django.contrib.auth import urls as auth_urls
|
from django.contrib.auth import urls as auth_urls
|
||||||
|
|
||||||
# Setup the URLs and include login URLs for the browsable API.
|
# Setup the URLs and include login URLs for the browsable API.
|
||||||
|
|
@ -46,6 +46,7 @@ urlpatterns = [
|
||||||
path('request_otp/', RequestOTPView.as_view(), name='register'),
|
path('request_otp/', RequestOTPView.as_view(), name='register'),
|
||||||
path('change_password/', ChangePasswordView.as_view(), name='change_password'),
|
path('change_password/', ChangePasswordView.as_view(), name='change_password'),
|
||||||
path('province', ProvinceApiView.as_view(), name='province'),
|
path('province', ProvinceApiView.as_view(), name='province'),
|
||||||
|
path('inquiry', UserInquiryView.as_view(), name='inquiry'),
|
||||||
|
|
||||||
path('transactions/', TransactionList.as_view(), name='transactions'),
|
path('transactions/', TransactionList.as_view(), name='transactions'),
|
||||||
path('transactions/<uuid>', TransactionDetail.as_view(), name='transaction_detail'),
|
path('transactions/<uuid>', TransactionDetail.as_view(), name='transaction_detail'),
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue