gold eggs backend
Some checks failed
Build and Push to Docker Hub / build-test-push (push) Failing after 1m55s

This commit is contained in:
2026-04-15 08:59:36 +02:00
commit ab73d05ecc
359 changed files with 14415 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
from .auth import * # noqa
from .generics import * # noqa

25
core/http/views/auth.py Normal file
View File

@@ -0,0 +1,25 @@
from django.utils.translation import gettext as _
from rest_framework import views
from rest_framework import request
from rest_framework import throttling
from core import enums
from core import services
from core.http import serializers
from core.http.views import generics as http_views
class AbstractSendSms(views.APIView, http_views.ApiResponse):
serializer_class = serializers.ResendSerializer
throttle_classes = [throttling.UserRateThrottle]
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.service = services.UserService()
def post(self, request: request.Request):
ser = self.serializer_class(data=request.data)
ser.is_valid(raise_exception=True)
phone = ser.data.get("phone")
self.service.send_confirmation(phone)
return self.success(_(enums.Messages.SEND_MESSAGE) % {"phone": phone})

View File

@@ -0,0 +1,67 @@
from rest_framework import generics, response, status
from core.exceptions import BreakException
class ApiResponse:
def response(
self,
success=True,
message="",
data=None,
status_code=status.HTTP_200_OK,
**kwargs
):
if data is None:
data = {}
response_data = {
"success": success,
"message": message,
"data": data,
**kwargs,
}
return response.Response(data=response_data, status=status_code)
def success(
self, message="", data=None, status_code=status.HTTP_200_OK, **kwargs
):
return self.response(True, message, data, status_code, **kwargs)
def error(
self,
message="",
data=None,
error_code=0,
status_code=status.HTTP_400_BAD_REQUEST,
exception=None,
**kwargs
):
if isinstance(exception, BreakException):
raise exception
return self.response(
False, message, data, status_code, error_code=error_code, **kwargs
) # noqa
class ListApiView(generics.ListAPIView, ApiResponse):
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = self.get_serializer(queryset, many=True)
return self.success(data=serializer.data)
class CreateApiView(generics.CreateAPIView, ApiResponse):
def create(self, request, *args, **kwargs):
super().create(request, *args, **kwargs)
return self.success(
self.message
if hasattr(self, "message")
else "Muvaffaqiyatli yaratildi"
) # noqa

29
core/http/views/user.py Normal file
View File

@@ -0,0 +1,29 @@
from rest_framework.generics import UpdateAPIView
from core.http.models import User
from core.http.serializers.user import (
UserAvatarUpdateSerializer,
UserUpdateSerializer,
)
class UserUpdateView(UpdateAPIView):
serializer_class = UserUpdateSerializer
queryset = User.objects.all()
def get_object(self):
return self.request.user
def perform_update(self, serializer):
serializer.save(user=self.request.user)
class UserAvatarUpdateView(UpdateAPIView):
serializer_class = UserAvatarUpdateSerializer
queryset = User.objects.all()
def get_object(self):
return self.request.user
def perform_update(self, serializer):
serializer.save(user=self.request.user)