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
041514f6
Commit
041514f6
authored
Jul 08, 2024
by
impfundev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: books, members, librarians, book_loans list endpoint
parent
11672ca0
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
100 additions
and
4 deletions
+100
-4
serializers.py
api/serializers.py
+40
-1
urls.py
api/urls.py
+11
-1
views.py
api/views.py
+46
-1
settings.py
config/settings.py
+3
-1
No files found.
api/serializers.py
View file @
041514f6
from
django.contrib.auth
import
get_user_model
from
rest_framework
import
serializers
from
books.models
import
Book
from
members.models
import
Members
from
book_loans.models
import
BookLoans
from
librarians.models
import
Librarians
class
UserSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
get_user_model
()
fields
=
[
"url"
,
"id"
,
"username"
,
"email"
,
"is_staff"
]
fields
=
[
"url"
,
"id"
,
"username"
,
"email"
,
"password"
,
"is_staff"
]
class
BookSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
Book
fields
=
[
"title"
,
"description"
,
"stock"
,
"created_at"
,
"updated_at"
]
class
MemberSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
Members
fields
=
[
"name"
,
"email"
,
"password"
,
"created_at"
,
"updated_at"
]
class
LibrarianSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
Librarians
fields
=
[
"name"
,
"email"
,
"password"
,
"created_at"
,
"updated_at"
]
class
BookLoanSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
BookLoans
fields
=
[
"book"
,
"member"
,
"librarians"
,
"notes"
,
"loan_date"
,
"due_date"
,
"return_date"
,
"created_at"
,
"updated_at"
,
]
api/urls.py
View file @
041514f6
from
django.urls
import
path
,
include
from
rest_framework
import
routers
from
api.views
import
UserViewSet
from
api.views
import
(
UserViewSet
,
BookViewSet
,
MemberViewSet
,
LibrarianViewSet
,
BookLoanViewSet
,
)
router
=
routers
.
DefaultRouter
()
router
.
register
(
r"users"
,
UserViewSet
,
basename
=
"user"
)
router
.
register
(
r"books"
,
BookViewSet
,
basename
=
"books"
)
router
.
register
(
r"members"
,
MemberViewSet
,
basename
=
"members"
)
router
.
register
(
r"librarians"
,
LibrarianViewSet
,
basename
=
"librarians"
)
router
.
register
(
r"book_loans"
,
BookLoanViewSet
,
basename
=
"book_loans"
)
urlpatterns
=
[
path
(
""
,
include
(
router
.
urls
)),
...
...
api/views.py
View file @
041514f6
from
rest_framework.viewsets
import
ModelViewSet
from
rest_framework.permissions
import
IsAuthenticated
from
api.serializers
import
get_user_model
,
UserSerializer
from
django_filters.rest_framework
import
DjangoFilterBackend
from
api.serializers
import
(
get_user_model
,
UserSerializer
,
Book
,
BookSerializer
,
Members
,
MemberSerializer
,
Librarians
,
LibrarianSerializer
,
BookLoans
,
BookLoanSerializer
,
)
class
UserViewSet
(
ModelViewSet
):
permission_classes
=
[
IsAuthenticated
]
queryset
=
get_user_model
()
.
objects
.
all
()
.
order_by
(
"id"
)
serializer_class
=
UserSerializer
class
BookViewSet
(
ModelViewSet
):
queryset
=
Book
.
objects
.
all
()
.
order_by
(
"created_at"
)
serializer_class
=
BookSerializer
filter_backends
=
[
DjangoFilterBackend
]
filterset_fields
=
[
"title"
,
"description"
]
class
MemberViewSet
(
ModelViewSet
):
queryset
=
Members
.
objects
.
all
()
.
order_by
(
"created_at"
)
serializer_class
=
MemberSerializer
filter_backends
=
[
DjangoFilterBackend
]
filterset_fields
=
[
"name"
,
"email"
]
class
LibrarianViewSet
(
ModelViewSet
):
queryset
=
Librarians
.
objects
.
all
()
.
order_by
(
"created_at"
)
serializer_class
=
LibrarianSerializer
filter_backends
=
[
DjangoFilterBackend
]
filterset_fields
=
[
"name"
,
"email"
]
class
BookLoanViewSet
(
ModelViewSet
):
queryset
=
BookLoans
.
objects
.
all
()
.
order_by
(
"created_at"
)
serializer_class
=
BookLoanSerializer
filter_backends
=
[
DjangoFilterBackend
]
filterset_fields
=
[
"loan_date"
,
"due_date"
,
"return_date"
,
]
config/settings.py
View file @
041514f6
...
...
@@ -25,7 +25,7 @@ JWT_SECRET = getenv("JWT_SECRET", default="")
# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY
=
"django-insecure-3-$!7+86e)2ps3i+3=da5(7-a=gt$p_@+=)fuh2jj-2!eym$3y"
SECRET_KEY
=
JWT_SECRET
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG
=
True
...
...
@@ -64,6 +64,7 @@ INSTALLED_APPS = [
"debug_toolbar"
,
"rest_framework"
,
"rest_framework.authtoken"
,
"django_filters"
,
"allauth"
,
"allauth.account"
,
"allauth.socialaccount"
,
...
...
@@ -88,6 +89,7 @@ REST_FRAMEWORK = {
"rest_framework.authentication.SessionAuthentication"
,
"rest_framework.authentication.TokenAuthentication"
,
],
"DEFAULT_FILTER_BACKENDS"
:
[
"django_filters.rest_framework.DjangoFilterBackend"
],
"DEFAULT_PAGINATION_CLASS"
:
"rest_framework.pagination.PageNumberPagination"
,
"PAGE_SIZE"
:
10
,
}
...
...
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