diff --git a/.idea/digitalize_task2_backend.iml b/.idea/digitalize_task2_backend.iml index e3bd986..160109d 100644 --- a/.idea/digitalize_task2_backend.iml +++ b/.idea/digitalize_task2_backend.iml @@ -16,7 +16,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 3b7bbcc..ccadf16 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,7 @@ - + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/config/urls.py b/config/urls.py index b6601c1..9e8fc04 100644 --- a/config/urls.py +++ b/config/urls.py @@ -15,7 +15,14 @@ """ from django.contrib import admin from django.urls import path +from ninja import NinjaAPI + +from files_management.controller import postController + +api = NinjaAPI() +api.add_router('/posts', postController) urlpatterns = [ path('admin/', admin.site.urls), + path('api', api.urls) ] diff --git a/files_management/controller.py b/files_management/controller.py index 45a329d..2d943de 100644 --- a/files_management/controller.py +++ b/files_management/controller.py @@ -1,2 +1,35 @@ from django.shortcuts import render +from ninja import Router, Schema # Create your views here. +from files_management.utils import list_posts, get_post, save_post, del_post + +class BoydyIn(Schema): + title: str + content: str + +postController = Router() + +# to list all posts +@postController.get('') +def list_all_posts(request): + return list_posts() + +# to retrieve a certain post +@postController.get('posts/{title}') +def get_post_title(request, title): + return get_post(title) + +# to create a new post +@postController.post('') +def create_new_post(request, payload: BoydyIn): + return save_post(payload.title, payload.content) + +# to update a certain post +@postController.put('') +def update_certain_post(request, payload: BoydyIn): + return save_post(payload.title) + +#delete post +@postController.delete('') +def delete_post(request,payload: BoydyIn): + return del_post(payload.title, payload.content) \ No newline at end of file