1111from sqlalchemy .ext .asyncio import AsyncSession
1212from sqlalchemy .sql import select
1313
14- from database import get_session # noqa
14+ from database import get_session # noqa
1515from models import Email , Site , Traffic
1616from services .network_load import interest_calculation
1717from settings import SECRET_KEY
1818
19+
1920app = FastAPI ()
2021
2122origins = ['*' ]
2223
23-
2424app .add_middleware (
2525 CORSMiddleware ,
2626 allow_origins = origins ,
3434
3535@app .get ('/' )
3636async def redirect_page_docs () -> RedirectResponse :
37- """FastAPI - Swagger UI."""
37+ """FastAPI - Swagger UI.""" # noqa: D403
3838 return RedirectResponse ('/docs#/' )
3939
4040
4141@app .post ('/traffic/' , response_model = Traffic )
42- async def calculate (identification : str , session : AsyncSession = Depends (get_session )): # noqa
42+ async def calculate (identification : str , session : AsyncSession = Depends (get_session )): # noqa
4343 """Функция на обновление счетчика в базе данных."""
4444 site = (await session .execute (select (Site ).where (Site .identification == identification ))).first ()[0 ]
4545 if site is None :
4646 raise HTTPException (status_code = status .HTTP_404_NOT_FOUND , detail = 'Запрашиваемый ключ доступа не найден' )
47- traffic = (await session .execute (select (Traffic ).
48- where (Traffic .site_id == site .id ).
49- where (Traffic .create_at == date .today ()))).first ()
47+ traffic = (await session .execute (
48+ select (Traffic ).
49+ where (Traffic .site_id == site .id ).
50+ where (Traffic .create_at == date .today ())
51+ )).first ()
5052 if traffic :
51- await session .execute (update (Traffic ).
52- where (Traffic .id == traffic [0 ].id ).
53- values (id = traffic [0 ].id ,
54- counter = Traffic .counter + 1 ,
55- ))
53+ await session .execute (
54+ update (Traffic ).
55+ where (Traffic .id == traffic [0 ].id ).
56+ values (
57+ id = traffic [0 ].id ,
58+ counter = Traffic .counter + 1 ,
59+ )
60+ )
5661 await session .commit ()
5762 return traffic [0 ]
5863 network_load = interest_calculation ()
59- traffic_id = (await session .execute (insert (Traffic ).values (
60- counter = 1 ,
61- create_at = date .today (),
62- site_id = site .id ,
63- average_load = network_load ['average_load' ],
64- maximum_load = network_load ['maximum_load' ],)
64+ traffic_id = (await session .execute (
65+ insert (Traffic ).values (
66+ counter = 1 ,
67+ create_at = date .today (),
68+ site_id = site .id ,
69+ average_load = network_load ['average_load' ],
70+ maximum_load = network_load ['maximum_load' ], )
6571 )).inserted_primary_key [0 ]
6672 await session .commit ()
6773 return (await session .execute (select (Traffic ).where (Traffic .id == traffic_id ))).first ()[0 ]
6874
6975
70- @app .get ('/traffic/{token_access}' , response_model = Site ) # noqa
71- async def verify_token_access (token_access : str ): # noqa
76+ @app .get ('/traffic/{token_access}' , response_model = Site ) # noqa
77+ async def verify_token_access (token_access : str ): # noqa
7278 """Функция проверки доступа."""
7379 if token_access == SECRET_KEY :
7480 return RedirectResponse ('/identification_site/' )
@@ -77,44 +83,69 @@ async def verify_token_access(token_access: str): # noqa
7783
7884
7985@app .get ('/identification_site/' )
80- async def form_send (request : Request ): # noqa
86+ async def form_send (request : Request ): # noqa
8187 """Функция получения идентификатора сайта."""
8288 return templates .TemplateResponse ('post_identification.html' , {'request' : request })
8389
8490
8591@app .post ('/identification/' , response_model = Site )
8692async def generate_secret_key (
87- website_url : str = Form (...),
88- secret_key : str = Form (...),
89- list_email : str = Form (...),
90- session : AsyncSession = Depends (get_session )): # noqa
93+ website_url : str = Form (...),
94+ secret_key : str = Form (...),
95+ list_email : str = Form (...),
96+ session : AsyncSession = Depends (get_session )
97+ ): # noqa
9198 """Функция добавления сайта для отслеживания."""
9299 verify_site = (await session .execute (select (Site ).where (Site .site_name == website_url ))).first ()
93100 if verify_site is None :
94101 email_id = (await session .execute (insert (Email ).values (name = list_email ))).inserted_primary_key [0 ]
95102 await session .commit ()
96- site_id = (await session .execute (insert (Site ).values (site_name = website_url ,
97- identification = secret_key ,
98- email_id = email_id ))).inserted_primary_key [0 ]
103+ site_id = (await session .execute (
104+ insert (Site ).values (
105+ site_name = website_url ,
106+ identification = secret_key ,
107+ email_id = email_id
108+ )
109+ )).inserted_primary_key [0 ]
99110 await session .commit ()
100- return JSONResponse (content = jsonable_encoder ((await session .execute (select (Site ).
101- where (Site .id == site_id ))).first ()))
102- return JSONResponse (content = jsonable_encoder ((await session .execute (select (Site ).
103- where (Site .site_name == website_url ))).first ()))
111+ return JSONResponse (
112+ content = jsonable_encoder (
113+ (await session .execute (
114+ select (Site ).
115+ where (Site .id == site_id )
116+ )).first ()
117+ )
118+ )
119+ return JSONResponse (
120+ content = jsonable_encoder (
121+ (await session .execute (
122+ select (Site ).
123+ where (Site .site_name == website_url )
124+ )).first ()
125+ )
126+ )
104127
105128
106- @app .get ('/info/{identification_site}' , response_model = Traffic , response_class = HTMLResponse ) # noqa
107- async def infi_traffic (identification_site : str , request : Request , session : AsyncSession = Depends (get_session )): # noqa
129+ @app .get ('/info/{identification_site}' , response_model = Traffic , response_class = HTMLResponse ) # noqa
130+ async def infi_traffic (
131+ identification_site : str ,
132+ request : Request ,
133+ session : AsyncSession = Depends (get_session )
134+ ): # noqa
108135 """Функция получения параметров сайта."""
109136 site = (await session .execute (select (Site ).where (Site .identification == identification_site ))).first ()[0 ]
110137 if site is None :
111138 raise HTTPException (status_code = status .HTTP_404_NOT_FOUND , detail = 'Запрашиваемый ключ доступа не найден' )
112- traffic_site = (await session .execute (select (Traffic ).
113- where (Traffic .site_id == site .id ).
114- where (Traffic .create_at == date .today ()))).first ()
139+ traffic_site = (await session .execute (
140+ select (Traffic ).
141+ where (Traffic .site_id == site .id ).
142+ where (Traffic .create_at == date .today ())
143+ )).first ()
115144 if traffic_site is None :
116- raise HTTPException (status_code = status .HTTP_404_NOT_FOUND , detail = f'Мониторинг сайта { site .site_name } '
117- f'за эту дату не производился' )
145+ raise HTTPException (
146+ status_code = status .HTTP_404_NOT_FOUND , detail = f'Мониторинг сайта { site .site_name } '
147+ f'за эту дату не производился'
148+ )
118149 return templates .TemplateResponse (
119150 'statistics.html' ,
120151 {
0 commit comments