Skip to content

Commit 28dea20

Browse files
committed
refactoring points calculation endpoint
1 parent fdaf1bf commit 28dea20

File tree

3 files changed

+74
-2
lines changed

3 files changed

+74
-2
lines changed

globals.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@
6969
"name": "Wipe",
7070
"description": "Wiping player related data",
7171
},
72+
{
73+
"name": "Refactored",
74+
"description": "Queries that have been refactored or merged together"
75+
}
7276
]
7377

7478
# Whitelisted IPs

surftimer/ck_playerrank.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1609,11 +1609,11 @@ async def selectPlayerRankUnknown(
16091609

16101610

16111611
@router.get(
1612-
"/surftimer/selectPlayerRankUnknown",
1612+
"/surftimer/selectPlayerRankByName",
16131613
name="Unknown Player Info - TO BE MERGED",
16141614
tags=["ck_playerrank", "strays"],
16151615
)
1616-
async def selectPlayerRankUnknown(
1616+
async def selectPlayerRankByName(
16171617
request: Request,
16181618
response: Response,
16191619
style: int,

surftimer/points.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
router = APIRouter()
88

9+
910
@router.get(
1011
"/surftimer/point_calc_finishedStages",
1112
name="Count Player Finished Stages",
@@ -88,3 +89,70 @@ def point_calc_finishedMaps(
8889
set_cache(cache_key, xquery)
8990

9091
return xquery
92+
93+
94+
@router.get(
95+
"/surftimer/recalculatePoints",
96+
name="Points Recalculation",
97+
tags=["Refactored", "Points Calculation"],
98+
)
99+
def recalculatePoints(
100+
request: Request,
101+
response: Response,
102+
steamid32: str,
103+
style: int,
104+
):
105+
"""Combines all the queries for point calculation into 1 endpoint"""
106+
tic = time.perf_counter()
107+
108+
# Player Name for the selected Style
109+
player_name_query = selectQuery(
110+
surftimer.queries.sql_stray_point_calc_playerRankName.format(steamid32, style)
111+
)
112+
if len(player_name_query) <= 0:
113+
response.status_code = status.HTTP_204_NO_CONTENT
114+
return response
115+
else:
116+
player_name_query = player_name_query.pop()
117+
# name = str(player_name_query[0])
118+
119+
## Bonuses
120+
finished_bonuses_query = selectQuery(
121+
surftimer.queries.sql_stray_point_calc_countFinishedBonus.format(
122+
style, style, steamid32, style
123+
)
124+
)
125+
if len(finished_bonuses_query) <= 0:
126+
response.status_code = status.HTTP_204_NO_CONTENT
127+
return response
128+
129+
## Stages
130+
finished_stages_query = selectQuery(
131+
surftimer.queries.sql_stray_point_calc_finishedStages.format(steamid32, style)
132+
)
133+
if len(finished_stages_query) <= 0:
134+
response.status_code = status.HTTP_204_NO_CONTENT
135+
return response
136+
137+
## Maps
138+
finished_maps_query = selectQuery(
139+
surftimer.queries.sql_stray_point_calc_finishedMaps.format(
140+
style, style, steamid32, style
141+
)
142+
)
143+
if len(finished_maps_query) <= 0:
144+
response.status_code = status.HTTP_204_NO_CONTENT
145+
return response
146+
147+
# Create the JSON output
148+
output = {
149+
**player_name_query, # Replace with your desired name
150+
"maps": finished_maps_query,
151+
"stages": finished_stages_query,
152+
"bonuses": finished_bonuses_query,
153+
}
154+
155+
toc = time.perf_counter()
156+
print(f"Execution time {toc - tic:0.4f}")
157+
158+
return output

0 commit comments

Comments
 (0)