From fec6660c086e14f5f7c4d55c2fc46984f5d8bf04 Mon Sep 17 00:00:00 2001 From: Redab Othman <104794234+redabh-othman@users.noreply.github.com> Date: Sat, 5 Nov 2022 15:39:47 +0300 Subject: [PATCH 1/4] Update urls.py --- config/urls.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/config/urls.py b/config/urls.py index b6601c1..bcc1cf0 100644 --- a/config/urls.py +++ b/config/urls.py @@ -15,7 +15,13 @@ """ from django.contrib import admin from django.urls import path +from ninja import NinjaAPI +from files_management.controller import post_controller +api=NinjaAPI() urlpatterns = [ path('admin/', admin.site.urls), + path('posts/' , post_controller) + ] + From e1a814de7156b24669219a97be0e094f0c33436f Mon Sep 17 00:00:00 2001 From: Redab Othman <104794234+redabh-othman@users.noreply.github.com> Date: Sat, 5 Nov 2022 15:43:31 +0300 Subject: [PATCH 2/4] Update settings.py --- config/settings.py | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/config/settings.py b/config/settings.py index e332a2b..7ab7718 100644 --- a/config/settings.py +++ b/config/settings.py @@ -1,15 +1,3 @@ -""" -Django settings for config project. - -Generated by 'django-admin startproject' using Django 4.1.2. - -For more information on this file, see -https://docs.djangoproject.com/en/4.1/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/4.1/ref/settings/ -""" - from pathlib import Path # Build paths inside the project like this: BASE_DIR / 'subdir'. @@ -37,6 +25,7 @@ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'files_management' ] MIDDLEWARE = [ From 12f2e7511a6956140b0746bc60e5219a441d8acd Mon Sep 17 00:00:00 2001 From: Redab Othman <104794234+redabh-othman@users.noreply.github.com> Date: Sat, 5 Nov 2022 15:44:31 +0300 Subject: [PATCH 3/4] Update controller.py --- files_management/controller.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/files_management/controller.py b/files_management/controller.py index 45a329d..4633daf 100644 --- a/files_management/controller.py +++ b/files_management/controller.py @@ -1,2 +1,24 @@ from django.shortcuts import render -# Create your views here. +from ninja import Router +import re +from files_management.utils import list_posts,save_post,get_post,del_post + +post_controller = Router() +@post_controller.get('') +def list_posts(request): + return list_posts() + + +@post_controller.get('/{title}') +def get_post(request ,title): + return get_post(title) + +@post_controller.post('') +def save_post(request , title , content): + return save_post(title,content) + + + +@post_controller.delete('/{title}') +def del_post(request ,title): + return del_post(title) From e56c52d993ff5115fbbcbe6bc80973af7b172224 Mon Sep 17 00:00:00 2001 From: Redab Othman <104794234+redabh-othman@users.noreply.github.com> Date: Sat, 5 Nov 2022 15:45:44 +0300 Subject: [PATCH 4/4] Update utils.py --- files_management/utils.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/files_management/utils.py b/files_management/utils.py index fbcb059..9bbba6e 100644 --- a/files_management/utils.py +++ b/files_management/utils.py @@ -13,6 +13,7 @@ def list_posts(): for filename in filenames if filename.endswith(".md"))) + def save_post(title, content): """ Saves a blog post, given its title and Markdown @@ -23,6 +24,7 @@ def save_post(title, content): if default_storage.exists(filename): default_storage.delete(filename) default_storage.save(filename, ContentFile(content)) + return{'Message':f'Post {title} Created Successfully'} def get_post(title): @@ -38,4 +40,9 @@ def get_post(title): def del_post(title): - pass + filename = f"posts/{title}.md" + if default_storage.exists(filename): + default_storage.delete(filename) + else: + return {'Message':'this post doesnt exist'} + return {'Message':f'Post {title} deleted Successfully'}