Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions config/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,17 @@

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)
api.add_router('movies/', movies_router)
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', api.urls),
path('categories/',categories_controller),
path('series/', Series_controller),
path('news/', news_controller)
]
13 changes: 11 additions & 2 deletions movies/api_controllers/categories.py
Original file line number Diff line number Diff line change
@@ -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.'}
23 changes: 23 additions & 0 deletions movies/api_controllers/news.py
Original file line number Diff line number Diff line change
@@ -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.'}
23 changes: 23 additions & 0 deletions movies/api_controllers/series.py
Original file line number Diff line number Diff line change
@@ -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.'}
12 changes: 12 additions & 0 deletions movies/schemas/news.py
Original file line number Diff line number Diff line change
@@ -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
15 changes: 15 additions & 0 deletions movies/schemas/series.py
Original file line number Diff line number Diff line change
@@ -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