Skip to content

Commit be5865d

Browse files
author
ExpDev07
committed
moved models into different files
1 parent f773e03 commit be5865d

File tree

6 files changed

+71
-58
lines changed

6 files changed

+71
-58
lines changed

app/main.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,16 @@
1111
import fastapi
1212
import pydantic
1313
import uvicorn
14+
1415
from fastapi.middleware.wsgi import WSGIMiddleware
1516
from fastapi.middleware.cors import CORSMiddleware
1617

17-
from . import models
1818
from .core import create_app
1919
from .data import data_source, data_sources
2020

21+
from .models.location import LocationResponse as Location, LocationsResponse as Locations
22+
from .models.latest import LatestResponse as Latest
23+
2124
# ################
2225
# Dependencies
2326
# ################
@@ -100,8 +103,7 @@ async def handle_validation_error(
100103

101104
V2 = fastapi.APIRouter()
102105

103-
104-
@V2.get('/latest', response_model=models.LatestResponse)
106+
@V2.get('/latest', response_model=Latest)
105107
def get_latest(request: fastapi.Request, source: Sources = 'jhu'):
106108
"""
107109
Getting latest amount of total confirmed cases, deaths, and recoveries.
@@ -117,7 +119,7 @@ def get_latest(request: fastapi.Request, source: Sources = 'jhu'):
117119

118120

119121
@V2.get(
120-
'/locations', response_model=models.LocationsResponse, response_model_exclude_unset=True
122+
'/locations', response_model=Locations, response_model_exclude_unset=True
121123
)
122124
def get_locations(
123125
request: fastapi.Request,
@@ -163,7 +165,7 @@ def get_locations(
163165
}
164166

165167

166-
@V2.get('/locations/{id}', response_model=models.LocationResponse)
168+
@V2.get('/locations/{id}', response_model=Location)
167169
def get_location_by_id(request: fastapi.Request, id: int, source: Sources = 'jhu', timelines: bool = True):
168170
"""
169171
Getting specific location by id.

app/models.py

Lines changed: 0 additions & 48 deletions
This file was deleted.

app/models/latest.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from pydantic import BaseModel
2+
3+
class Latest(BaseModel):
4+
"""
5+
Latest model.
6+
"""
7+
confirmed: int
8+
deaths: int
9+
recovered: int
10+
11+
class LatestResponse(BaseModel):
12+
"""
13+
Response for latest.
14+
"""
15+
latest: Latest

app/models/location.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from pydantic import BaseModel
2+
from typing import Dict, List
3+
from .timeline import Timelines
4+
from .latest import Latest
5+
6+
class Location(BaseModel):
7+
"""
8+
Location model.
9+
"""
10+
id: int
11+
country: str
12+
country_code: str
13+
county: str = ''
14+
province: str = ''
15+
last_updated: str # TODO use datetime.datetime type.
16+
coordinates: Dict
17+
latest: Latest
18+
timelines: Timelines = {}
19+
20+
class LocationResponse(BaseModel):
21+
"""
22+
Response for location.
23+
"""
24+
location: Location
25+
26+
class LocationsResponse(BaseModel):
27+
"""
28+
Response for locations.
29+
"""
30+
latest: Latest
31+
locations: List[Location] = []

app/models/timeline.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from pydantic import BaseModel
2+
from typing import Dict
3+
4+
class Timeline(BaseModel):
5+
"""
6+
Timeline model.
7+
"""
8+
9+
latest: int
10+
timeline: Dict[str, int] = {}
11+
12+
class Timelines(BaseModel):
13+
"""
14+
Timelines model.
15+
"""
16+
confirmed: Timeline
17+
deaths: Timeline
18+
recovered: Timeline

app/routes/__init__.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,3 @@
66

77
# API version 1.
88
from .v1 import confirmed, deaths, recovered, all
9-
10-
# Redirect to project page on index.
11-
@app.route('/')
12-
def index():
13-
return redirect('https://github.com/ExpDev07/coronavirus-tracker-api', 302)

0 commit comments

Comments
 (0)