From ebfaf350d97e91dea47fa1eb6127e1ba554d9fa6 Mon Sep 17 00:00:00 2001 From: hiba707 <105562151+hiba707@users.noreply.github.com> Date: Sat, 29 Oct 2022 19:29:32 +0300 Subject: [PATCH 1/6] Update categories.py --- movies/api_controllers/categories.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/movies/api_controllers/categories.py b/movies/api_controllers/categories.py index e395fa0..1ca6349 100644 --- a/movies/api_controllers/categories.py +++ b/movies/api_controllers/categories.py @@ -1,15 +1,24 @@ from ninja import Router - +from pydantic.types import UUID4 from movies.models import Category from movies.schemas.categories import CategoryOut from movies.schemas.general import MessageOut categories_controller = Router(tags=['Categories']) - +#categorey @categories_controller.get('', response={200: list[CategoryOut], 404: MessageOut}) def list_categories(request): categories = Category.objects.all().order_by('name') if categories: return 200, categories return 404, {'msg': "There are no categories yet."} + +#here we will add the categorey/{id} +@categories_controller.get('/{id}', response={200: CategoryOut, 404: MessageOut}) +def get_categories(request, id: UUID4): + try: + categories = Category.objects.get(id=id) + return 200, categories + except Category.DoesNotExist: + return 404, {'msg': 'There is no categories with that id.'} From 1f52820b2756b98f3106c4c2ab35cc2c193711ff Mon Sep 17 00:00:00 2001 From: hiba707 <105562151+hiba707@users.noreply.github.com> Date: Sat, 29 Oct 2022 19:32:20 +0300 Subject: [PATCH 2/6] Update news.py --- movies/api_controllers/news.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/movies/api_controllers/news.py b/movies/api_controllers/news.py index e69de29..73a6185 100644 --- a/movies/api_controllers/news.py +++ b/movies/api_controllers/news.py @@ -0,0 +1,23 @@ +from movies.models import New +from movies.schemas.news import Newsout +from movies.schemas.general import MessageOut +from pydantic.types import UUID4 +from ninja import Router + +news_controller = Router(tags=['News']) +#news +@news_controller.get('', response={200: list[Newsout], 404: MessageOut}) +def list_news(request): + news = New.objects.all().order_by('name') + if news: + return 200, news + return 404, {'msg': "There are no news yet."} + +#here we will add the news/{id} +@news_controller.get('/{id}', response={200: Newsout, 404: MessageOut}) +def get_categories(request, id: UUID4): + try: + categories = New.objects.get(id=id) + return 200, categories + except New.DoesNotExist: + return 404, {'msg': 'There is no news with that id.'} From 7d1cb2cbcdc1fda3a6df5d1cc389b365ef96126c Mon Sep 17 00:00:00 2001 From: hiba707 <105562151+hiba707@users.noreply.github.com> Date: Sat, 29 Oct 2022 19:35:49 +0300 Subject: [PATCH 3/6] Update series.py --- movies/api_controllers/series.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/movies/api_controllers/series.py b/movies/api_controllers/series.py index e69de29..65ec15e 100644 --- a/movies/api_controllers/series.py +++ b/movies/api_controllers/series.py @@ -0,0 +1,23 @@ +from movies.models import Serial +from movies.schemas.series import SerialOut +from movies.schemas.general import MessageOut +from pydantic.types import UUID4 +from ninja import Router + +Series_controller = Router(tags=['Series']) +#series +@Series_controller.get('', response={200: list[SerialOut], 404: MessageOut}) +def list_seasons(request): + series= Serial.objects.all().order_by('release_date') + if series: + return 200, series + return 404, {'msg': "There are no seasons yet."} + +#here we will add the SERIES/{id} +@Series_controller.get('/{id}', response={200: SerialOut, 404: MessageOut}) +def get_categories(request, id: UUID4): + try: + series = Serial.objects.get(id=id) + return 200, series + except Serial.DoesNotExist: + return 404, {'msg': 'There is no categories with that id.'} From e29e29cc74db2b252f38f25ba50278875e6195c7 Mon Sep 17 00:00:00 2001 From: hiba707 <105562151+hiba707@users.noreply.github.com> Date: Sat, 29 Oct 2022 19:39:08 +0300 Subject: [PATCH 4/6] Update news.py --- movies/schemas/news.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/movies/schemas/news.py b/movies/schemas/news.py index e69de29..1d5261e 100644 --- a/movies/schemas/news.py +++ b/movies/schemas/news.py @@ -0,0 +1,12 @@ +from ninja import Schema + +from pydantic.types import UUID4 +import datetime + + +class Newsout(Schema): + id: UUID4 + title: str + description: str + image: str = None + release_date: datetime.data From c2bb42cc9a7b6f7a9b42d1bc66cc8715239e2ad0 Mon Sep 17 00:00:00 2001 From: hiba707 <105562151+hiba707@users.noreply.github.com> Date: Sat, 29 Oct 2022 19:39:59 +0300 Subject: [PATCH 5/6] Update series.py --- movies/schemas/series.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/movies/schemas/series.py b/movies/schemas/series.py index e69de29..e8446b4 100644 --- a/movies/schemas/series.py +++ b/movies/schemas/series.py @@ -0,0 +1,15 @@ +from ninja import Schema +from pydantic.types import UUID4,Decimal +import datetime + + +class SerialOut(Schema): + id: UUID4 + name: str + release_date: datetime.data + describtion: str + rating: Decimal + is_featured:bool + thumbnail:str + image:str + trailer_url: str From e051902f0d2985db628316ae6f56c0984f094309 Mon Sep 17 00:00:00 2001 From: hiba707 <105562151+hiba707@users.noreply.github.com> Date: Sat, 29 Oct 2022 19:46:22 +0300 Subject: [PATCH 6/6] Update urls.py --- config/urls.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/config/urls.py b/config/urls.py index 9303af8..57ca949 100644 --- a/config/urls.py +++ b/config/urls.py @@ -4,6 +4,9 @@ from account.controller import account_router from movies.api_controllers.movies import movies_router +from movies.api_controllers.series import Series_controller +from movies.api_controllers.categories import categories_controller +from movies.api_controllers.news import news_controller api = NinjaAPI() api.add_router('account/', account_router) @@ -11,4 +14,7 @@ urlpatterns = [ path('admin/', admin.site.urls), path('api/', api.urls), + path('categories/',categories_controller), + path('series/', Series_controller), + path('news/', news_controller) ]