From 580d99025750348732e45d008ba215446960d67e Mon Sep 17 00:00:00 2001 From: Shahlaa Date: Thu, 20 Oct 2022 13:55:39 +0300 Subject: [PATCH 1/2] finish solve task --- .idea/digitalize_task2_backend.iml | 2 +- .idea/misc.xml | 5 ++++- .idea/vcs.xml | 6 ++++++ config/urls.py | 7 +++++++ files_management/controller.py | 29 +++++++++++++++++++++++++++++ 5 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 .idea/vcs.xml 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..e919161 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..1d859fb 100644 --- a/files_management/controller.py +++ b/files_management/controller.py @@ -1,2 +1,31 @@ from django.shortcuts import render +from ninja import Router # Create your views here. +from files_management.utils import list_posts, get_post, save_post, del_post + +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, tiltle, content): + return save_post(tiltle, content) + +# to update a certain post +@postController.put('') +def update_certain_post(request, title): + return save_post(title) + +#delete post +@postController.delete('') +def delete_post(request, title, content): + return del_post(title, content) \ No newline at end of file From cf9b0cbe603b4bcd43eda9c833a1083c0119b4f5 Mon Sep 17 00:00:00 2001 From: Shahlaa Date: Thu, 20 Oct 2022 17:06:12 +0300 Subject: [PATCH 2/2] refacter code in task --- config/urls.py | 2 +- files_management/controller.py | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/config/urls.py b/config/urls.py index e919161..9e8fc04 100644 --- a/config/urls.py +++ b/config/urls.py @@ -20,7 +20,7 @@ from files_management.controller import postController api = NinjaAPI() -api.add_router('/posts',postController) +api.add_router('/posts', postController) urlpatterns = [ path('admin/', admin.site.urls), diff --git a/files_management/controller.py b/files_management/controller.py index 1d859fb..2d943de 100644 --- a/files_management/controller.py +++ b/files_management/controller.py @@ -1,8 +1,12 @@ from django.shortcuts import render -from ninja import Router +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 @@ -17,15 +21,15 @@ def get_post_title(request, title): # to create a new post @postController.post('') -def create_new_post(request, tiltle, content): - return save_post(tiltle, content) +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, title): - return save_post(title) +def update_certain_post(request, payload: BoydyIn): + return save_post(payload.title) #delete post @postController.delete('') -def delete_post(request, title, content): - return del_post(title, content) \ No newline at end of file +def delete_post(request,payload: BoydyIn): + return del_post(payload.title, payload.content) \ No newline at end of file