Commit 4d69eb12 authored by Ilham Maulana's avatar Ilham Maulana 💻

fix: shit auth and book endpoint to not using drf

parent 6ea2daa0
This diff is collapsed.
import json
from django.http import JsonResponse
from django.core.serializers import serialize
from django.views.decorators.csrf import csrf_exempt
from rest_framework import viewsets from rest_framework import viewsets
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.filters import SearchFilter from rest_framework.filters import SearchFilter
from django_filters.rest_framework import DjangoFilterBackend from django_filters.rest_framework import DjangoFilterBackend
from .serializers import Book, BookSerializer, Category, CategorySerializer
from book.models import Book, Category
from .serializers import BookSerializer, CategorySerializer
@csrf_exempt
def bookView(request):
books = Book.objects.all().order_by("created_at")
category = request.GET.get("category")
keyword = request.GET.get("search")
if request.method == "GET":
if category:
books = books.filter(category__name=category)
if keyword and len(keyword) >= 3:
books = books.filter(title__icontains=keyword)
data = []
for book_item in books:
if book_item.category is not None:
book = {
"id": book_item.id,
"title": book_item.title,
"author": book_item.author,
"description": book_item.description,
"cover_image": "http://127.0.0.1:8000" + book_item.cover_image.url,
"category": {
"name": book_item.category.name,
},
}
book = {
"id": book_item.id,
"title": book_item.title,
"author": book_item.author,
"description": book_item.description,
"cover_image": "http://127.0.0.1:8000" + book_item.cover_image.url,
}
data.append(book)
return JsonResponse(data, status=200, safe=False)
return JsonResponse({"message": "Invalid request method"}, status=405)
class BookViewSet(viewsets.ModelViewSet): class BookViewSet(viewsets.ModelViewSet):
......
...@@ -2,22 +2,19 @@ from django.urls import path, include ...@@ -2,22 +2,19 @@ from django.urls import path, include
from rest_framework import routers from rest_framework import routers
from .auth.views import ( from .auth.views import (
LibrarianViewSet, registerUserView,
LibrarianLoginView, loginUserView,
LibrarianRegisterView, logoutUserView,
LibrarianLoginHistoryViewSet, getUserDetail,
MemberViewSet, memberLoanView,
MemberLoginView, updateUserProfileView,
MemberRegisterView, checkAuthSessionView,
MemberChangePasswordView, changePasswordView,
LogoutView, resetPasswordView,
TokenResetPasswordView, resetPasswordConfirmView,
ResetPasswordConfirmView,
UserDetailView,
UpdateProfileView,
LoginBaseView,
) )
from .book.views import BookViewSet, CategoryViewSet
from .book.views import bookView, CategoryViewSet
from .loans.views import ( from .loans.views import (
BookLoanViewSet, BookLoanViewSet,
OverduedBookLoanViewSet, OverduedBookLoanViewSet,
...@@ -27,10 +24,6 @@ from .loans.views import ( ...@@ -27,10 +24,6 @@ from .loans.views import (
router = routers.DefaultRouter() router = routers.DefaultRouter()
router.register(r"user", UpdateProfileView, basename="user")
router.register(r"librarians", LibrarianViewSet, basename="librarians")
router.register(r"members", MemberViewSet, basename="members")
router.register(r"books", BookViewSet, basename="books")
router.register(r"categories", CategoryViewSet, basename="categories") router.register(r"categories", CategoryViewSet, basename="categories")
router.register(r"book-loans", BookLoanViewSet, basename="book_loans") router.register(r"book-loans", BookLoanViewSet, basename="book_loans")
router.register( router.register(
...@@ -39,9 +32,6 @@ router.register( ...@@ -39,9 +32,6 @@ router.register(
router.register( router.register(
r"upcoming-loans", UpComingBookLoanViewSet, basename="book_loans_upcoming" r"upcoming-loans", UpComingBookLoanViewSet, basename="book_loans_upcoming"
) )
router.register(
r"login-history", LibrarianLoginHistoryViewSet, basename="librarian_login_history"
)
router_member_loan = routers.DefaultRouter() router_member_loan = routers.DefaultRouter()
router_member_loan.register(r"loans", MemberLoanViewSet, basename="member_loans") router_member_loan.register(r"loans", MemberLoanViewSet, basename="member_loans")
...@@ -49,49 +39,20 @@ router_member_loan.register(r"loans", MemberLoanViewSet, basename="member_loans" ...@@ -49,49 +39,20 @@ router_member_loan.register(r"loans", MemberLoanViewSet, basename="member_loans"
urlpatterns = [ urlpatterns = [
path("", include(router.urls)), path("", include(router.urls)),
# auth # auth
path( path("user", getUserDetail, name="user_detail"),
"user", path("user/loans", memberLoanView, name="user_loans"),
UserDetailView.as_view(), path("user/update", updateUserProfileView, name="update_user_profile"),
name="user_detail", path("auth/login", loginUserView, name="login"),
), path("auth/logout", logoutUserView, name="logout"),
path( path("auth/register", registerUserView, name="register"),
"user", path("auth/change-password", changePasswordView, name="change_password"),
UserDetailView.as_view(), path("auth/reset-password", resetPasswordView, name="reset_password"),
name="user_detail", path(
), "auth/reset-password-confirm",
path( resetPasswordConfirmView,
"reset-password/request-token",
TokenResetPasswordView.as_view(),
name="reset_password_request_token",
),
path(
"reset-password/confirm",
ResetPasswordConfirmView.as_view(),
name="reset_password_confirm", name="reset_password_confirm",
), ),
path("librarians/auth/login", LibrarianLoginView.as_view(), name="librarian_login"), path("auth/check-auth-session", checkAuthSessionView, name="check_auth_session"),
path("auth/login", LoginBaseView.as_view(), name="universal_login"), # books
path( path("books", bookView, name="books"),
"librarians/auth/register",
LibrarianRegisterView.as_view(),
name="librarian_register",
),
path("auth/logout", LogoutView.as_view(), name="librarian_logout"),
path("members/auth/login", MemberLoginView.as_view(), name="member_login"),
path(
"members/auth/register",
MemberRegisterView.as_view(),
name="librarian_register",
),
# change password
path(
"members/<int:member_id>/change-password",
MemberChangePasswordView.as_view(),
name="member_change_password",
),
path(
"members/<int:member_id>/",
include(router_member_loan.urls),
name="member_loans",
),
] ]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment