Skip to content
Open
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
93 changes: 60 additions & 33 deletions app/routers/v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,50 +2,77 @@
from fastapi import APIRouter

from ..services.location.jhu import get_category
from ..services.location import LocationService

V1 = APIRouter()


@V1.get("/all")
async def all_categories():
"""Get all the categories."""
confirmed = await get_category("confirmed")
deaths = await get_category("deaths")
recovered = await get_category("recovered")
class OutputsAbstract():
def showOutput(self):
raise NotImplemented()

return {
# Data.
"confirmed": confirmed,
"deaths": deaths,
"recovered": recovered,
# Latest.
"latest": {
"confirmed": confirmed["latest"],
"deaths": deaths["latest"],
"recovered": recovered["latest"],
},
}

class Bridge(OutputsAbstract):
def __init__(self) -> None:
self.implemntation = None

@V1.get("/confirmed")
async def get_confirmed():
"""Confirmed cases."""
confirmed_data = await get_category("confirmed")

return confirmed_data
class OutputAll(Bridge):
def __init__(self, implementation: LocationService):
self.implemntation = implementation

@V1.get("/all")
async def showOutput():
"""Get all the categories."""
confirmed = await get_category("confirmed")
deaths = await get_category("deaths")
recovered = await get_category("recovered")

@V1.get("/deaths")
async def get_deaths():
"""Total deaths."""
deaths_data = await get_category("deaths")
return {
# Data.
"confirmed": confirmed,
"deaths": deaths,
"recovered": recovered,
# Latest.
"latest": {
"confirmed": confirmed["latest"],
"deaths": deaths["latest"],
"recovered": recovered["latest"],
},
}

return deaths_data

class OutputConfirmed(Bridge):
def __init__(self, implementation: LocationService):
self.implemntation = implementation

@V1.get("/recovered")
async def get_recovered():
"""Recovered cases."""
recovered_data = await get_category("recovered")
@V1.get("/confirmed")
async def showOutput():
"""Confirmed cases."""
confirmed_data = await get_category("confirmed")

return recovered_data
return confirmed_data


class OutputDeaths(Bridge):
def __init__(self, implementation: LocationService):
self.implemntation = implementation

@V1.get("/deaths")
async def showOutput():
"""Total deaths."""
deaths_data = await get_category("deaths")

return deaths_data


class OutputRecovered(Bridge):
def __init__(self, implementation: LocationService):
self.implemntation = implementation

@V1.get("/recovered")
async def showOutput():
"""Recovered cases."""
recovered_data = await get_category("recovered")

return recovered_data