-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
95 lines (63 loc) · 3.13 KB
/
main.py
File metadata and controls
95 lines (63 loc) · 3.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
from fastapi import Depends, FastAPI, HTTPException
from sql import crud, models, schemas
from sql.database import async_session, engine
app = FastAPI()
@app.get('/')
async def root():
return {"message": "Hello World"}
@app.post('/latest/', response_model=schemas.Latest)
async def create_latest(latest: schemas.LatestCreate):
async with async_session() as session:
return await crud.create_latest(session, latest=latest)
@app.get('/latest/', response_model=list[schemas.Latest])
async def read_latest(limit: int = 100):
async with async_session() as session:
return await crud.get_latest_all(session, limit=limit)
@app.get('/latest/{item_id}/', response_model=schemas.Latest)
async def read_latest_by_item(item_id: int):
async with async_session() as session:
return await crud.get_latest_by_item(session, item_id=item_id)
@app.post('/average/', response_model=schemas.Average)
async def create_average(average: schemas.AverageCreate):
async with async_session() as session:
return await crud.create_average(session, average=average)
@app.get('/average/', response_model=list[schemas.Average])
async def read_average(limit: int = 100):
async with async_session() as session:
return await crud.get_average_all(session, limit=limit)
@app.get('/average/{item_id}/', response_model=schemas.Average)
async def read_average_by_item(item_id: int):
async with async_session() as session:
return await crud.get_average_by_item(session, item_id=item_id)
@app.post('/daily/', response_model=schemas.Daily)
async def create_daily(daily: schemas.DailyCreate):
async with async_session() as session:
return await crud.create_daily(session, daily=daily)
@app.get('/daily/', response_model=list[schemas.Daily])
async def read_daily(limit: int = 100):
async with async_session() as session:
return await crud.get_daily_all(session, limit=limit)
@app.get('/daily/{item_id}/', response_model=schemas.Daily)
async def read_daily_by_item(item_id: int):
async with async_session() as session:
return await crud.get_daily_by_item(session, item_id=item_id)
@app.get('/items/full/', response_model=list[schemas.ItemFull])
async def read_items_full(limit: int = 100):
async with async_session() as session:
return await crud.get_items_full(session, limit=limit)
@app.get('/items/full/{item_id}/', response_model=schemas.ItemFull)
async def read_item_full(item_id: int):
async with async_session() as session:
return await crud.get_item_full(session, item_id=item_id)
@app.post('/items/', response_model=schemas.Item)
async def create_item(item: schemas.ItemCreate):
async with async_session() as session:
return await crud.create_item(session, item=item)
@app.get('/items/', response_model=list[schemas.Item])
async def read_items(limit: int = 100):
async with async_session() as session:
return await crud.get_items(session, limit=limit)
@app.get('/items/{item_id}/', response_model=schemas.Item)
async def read_item(item_id: int):
async with async_session() as session:
return await crud.get_item(session, item_id=item_id)