From d0a6db2302de640b7b5cd70afb29dfdbc857f266 Mon Sep 17 00:00:00 2001 From: Sami Nouidri Date: Fri, 15 Mar 2024 13:05:27 +0100 Subject: [PATCH] 13 implement post creation endpoints (#27) * started work on post api calls * fixed an error with post display * Update api/neurona/settings.py * fix syntax error * move url in app specific file * revert frontend modifications --------- Co-authored-by: Nima Dekhli --- .gitignore | 2 ++ api/neurona/settings.py | 3 ++- api/neurona/urls.py | 2 +- api/neuronaApp/serializers/__init__.py | 3 ++- api/neuronaApp/serializers/posts_serializer.py | 12 ++++++++++++ api/neuronaApp/urls.py | 3 +++ api/neuronaApp/views/__init__.py | 1 + api/neuronaApp/views/posts_view.py | 12 ++++++++++++ 8 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 api/neuronaApp/serializers/posts_serializer.py create mode 100644 api/neuronaApp/views/posts_view.py diff --git a/.gitignore b/.gitignore index b205420..74f0149 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ __pycache__ .idea api/.env + +api/neurona/.env diff --git a/api/neurona/settings.py b/api/neurona/settings.py index 4628cc3..44b1359 100644 --- a/api/neurona/settings.py +++ b/api/neurona/settings.py @@ -55,10 +55,11 @@ "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", -] + ] ROOT_URLCONF = "neurona.urls" + TEMPLATES = [ { "BACKEND": "django.template.backends.django.DjangoTemplates", diff --git a/api/neurona/urls.py b/api/neurona/urls.py index 4a9d425..c5b5ae3 100644 --- a/api/neurona/urls.py +++ b/api/neurona/urls.py @@ -19,5 +19,5 @@ urlpatterns = [ path("admin/", admin.site.urls), - path("api/", include("neuronaApp.urls")) + path("api/", include("neuronaApp.urls")), ] diff --git a/api/neuronaApp/serializers/__init__.py b/api/neuronaApp/serializers/__init__.py index 8ed8310..0f63fd7 100644 --- a/api/neuronaApp/serializers/__init__.py +++ b/api/neuronaApp/serializers/__init__.py @@ -1,3 +1,4 @@ # Import serializers here from .space_serializer import SpaceSerializer -from .authentication_serializer import * \ No newline at end of file +from .authentication_serializer import * +from .posts_serializer import * \ No newline at end of file diff --git a/api/neuronaApp/serializers/posts_serializer.py b/api/neuronaApp/serializers/posts_serializer.py new file mode 100644 index 0000000..fb7f16c --- /dev/null +++ b/api/neuronaApp/serializers/posts_serializer.py @@ -0,0 +1,12 @@ +from rest_framework import serializers +from neuronaApp.models import Posts, Comments, PostsImages, CommentsImages, Votes, CommentsVotes + +class PostsSerializer(serializers.ModelSerializer): + class Meta: + model = Posts + fields = '__all__' + +class CommentsSerializer(serializers.ModelSerializer): + class Meta: + model = Comments + fields = '__all__' diff --git a/api/neuronaApp/urls.py b/api/neuronaApp/urls.py index f3320ea..804583b 100644 --- a/api/neuronaApp/urls.py +++ b/api/neuronaApp/urls.py @@ -2,10 +2,13 @@ from rest_framework.routers import DefaultRouter from neuronaApp import views +from neuronaApp.views import PostsViewSet, CommentsViewSet router = DefaultRouter() router.register(r'validity', views.Validity, basename='validity') router.register(r'passkey-options', views.PasskeyChallengeView, basename='passkey-options') +router.register(r'posts', PostsViewSet) +router.register(r'comments', CommentsViewSet) urlpatterns = [ path("register/", views.RegisterView.as_view(), name="register"), diff --git a/api/neuronaApp/views/__init__.py b/api/neuronaApp/views/__init__.py index 82268c5..2ec3701 100644 --- a/api/neuronaApp/views/__init__.py +++ b/api/neuronaApp/views/__init__.py @@ -2,3 +2,4 @@ from .space_view import * from .authentication_view import PasskeyChallengeView, RegisterView, LoginView from .user_profile_view import * +from .posts_view import * \ No newline at end of file diff --git a/api/neuronaApp/views/posts_view.py b/api/neuronaApp/views/posts_view.py new file mode 100644 index 0000000..1e463a7 --- /dev/null +++ b/api/neuronaApp/views/posts_view.py @@ -0,0 +1,12 @@ +from django.shortcuts import render +from rest_framework import viewsets +from neuronaApp.models import Posts, Comments +from neuronaApp.serializers import PostsSerializer, CommentsSerializer + +class PostsViewSet(viewsets.ModelViewSet): + queryset = Posts.objects.all() + serializer_class = PostsSerializer + +class CommentsViewSet(viewsets.ModelViewSet): + queryset = Comments.objects.all() + serializer_class = CommentsSerializer