Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
L
library-app-django
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ilham Maulana
library-app-django
Commits
6462c054
Commit
6462c054
authored
Aug 05, 2024
by
Ilham Maulana
💻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: sift categories endpoint to not use drf
parent
342ad9d6
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
16 additions
and
46 deletions
+16
-46
views.py
api/book/views.py
+13
-40
urls.py
api/urls.py
+3
-6
No files found.
api/book/views.py
View file @
6462c054
from
django.http
import
JsonResponse
from
django.http
import
JsonResponse
from
django.views.decorators.csrf
import
csrf_exempt
from
django.views.decorators.csrf
import
csrf_exempt
from
rest_framework
import
viewsets
from
rest_framework.response
import
Response
from
rest_framework.filters
import
SearchFilter
from
django_filters.rest_framework
import
DjangoFilterBackend
from
book.models
import
Book
,
Category
from
book.models
import
Book
,
Category
from
.serializers
import
BookSerializer
,
CategorySerializer
@
csrf_exempt
@
csrf_exempt
...
@@ -51,40 +45,19 @@ def bookView(request):
...
@@ -51,40 +45,19 @@ def bookView(request):
return
JsonResponse
({
"message"
:
"Invalid request method"
},
status
=
405
)
return
JsonResponse
({
"message"
:
"Invalid request method"
},
status
=
405
)
class
BookViewSet
(
viewsets
.
ModelViewSet
):
@
csrf_exempt
queryset
=
Book
.
objects
.
all
()
.
order_by
(
"created_at"
)
def
categoryView
(
request
):
serializer_class
=
BookSerializer
categories
=
Category
.
objects
.
all
()
.
order_by
(
"created_at"
)
filter_backends
=
[
DjangoFilterBackend
,
SearchFilter
]
filterset_fields
=
[
"category__name"
]
search_fields
=
[
"title"
]
def
get_queryset
(
self
):
year
=
self
.
request
.
query_params
.
get
(
"year"
)
queryset
=
self
.
queryset
if
year
is
not
None
:
return
queryset
.
filter
(
publish_date__year
=
year
)
return
queryset
def
update
(
self
,
request
,
pk
):
instance
=
self
.
get_object
()
serializer
=
self
.
get_serializer
(
instance
,
data
=
request
.
data
,
partial
=
True
)
serializer
.
is_valid
(
raise_exception
=
True
)
serializer
.
save
()
return
Response
(
serializer
.
data
)
if
request
.
method
==
"GET"
:
data
=
[]
for
category_item
in
categories
:
category
=
{
"id"
:
category_item
.
id
,
"name"
:
category_item
.
name
,
}
data
.
append
(
category
)
class
CategoryViewSet
(
viewsets
.
ModelViewSet
):
return
JsonResponse
(
data
,
safe
=
False
,
status
=
200
)
queryset
=
Category
.
objects
.
all
()
.
order_by
(
"created_at"
)
serializer_class
=
CategorySerializer
filter_backends
=
[
DjangoFilterBackend
,
SearchFilter
]
filterset_fields
=
[
"created_at"
,
"updated_at"
]
search_fields
=
[
"name"
]
def
update
(
self
,
request
,
pk
):
return
JsonResponse
({
"message"
:
"Invalid request method"
},
status
=
405
)
instance
=
self
.
get_object
()
serializer
=
self
.
get_serializer
(
instance
,
data
=
request
.
data
,
partial
=
True
)
serializer
.
is_valid
(
raise_exception
=
True
)
serializer
.
save
()
return
Response
(
serializer
.
data
)
api/urls.py
View file @
6462c054
...
@@ -14,17 +14,15 @@ from .auth.views import (
...
@@ -14,17 +14,15 @@ from .auth.views import (
resetPasswordConfirmView
,
resetPasswordConfirmView
,
)
)
from
.book.views
import
bookView
,
CategoryViewSet
from
.book.views
import
bookView
,
categoryView
from
.loans.views
import
(
from
.loans.views
import
(
BookLoanViewSet
,
BookLoanViewSet
,
OverduedBookLoanViewSet
,
OverduedBookLoanViewSet
,
UpComingBookLoanViewSet
,
UpComingBookLoanViewSet
,
MemberLoanViewSet
,
)
)
router
=
routers
.
DefaultRouter
()
router
=
routers
.
DefaultRouter
()
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
(
r"overdued-loans"
,
OverduedBookLoanViewSet
,
basename
=
"book_loans_overdued"
r"overdued-loans"
,
OverduedBookLoanViewSet
,
basename
=
"book_loans_overdued"
...
@@ -33,9 +31,6 @@ router.register(
...
@@ -33,9 +31,6 @@ router.register(
r"upcoming-loans"
,
UpComingBookLoanViewSet
,
basename
=
"book_loans_upcoming"
r"upcoming-loans"
,
UpComingBookLoanViewSet
,
basename
=
"book_loans_upcoming"
)
)
router_member_loan
=
routers
.
DefaultRouter
()
router_member_loan
.
register
(
r"loans"
,
MemberLoanViewSet
,
basename
=
"member_loans"
)
urlpatterns
=
[
urlpatterns
=
[
path
(
""
,
include
(
router
.
urls
)),
path
(
""
,
include
(
router
.
urls
)),
# auth
# auth
...
@@ -55,4 +50,6 @@ urlpatterns = [
...
@@ -55,4 +50,6 @@ urlpatterns = [
path
(
"auth/check-auth-session"
,
checkAuthSessionView
,
name
=
"check_auth_session"
),
path
(
"auth/check-auth-session"
,
checkAuthSessionView
,
name
=
"check_auth_session"
),
# books
# books
path
(
"books"
,
bookView
,
name
=
"books"
),
path
(
"books"
,
bookView
,
name
=
"books"
),
# categories
path
(
"categories"
,
categoryView
,
name
=
"categories"
),
]
]
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment