feat: Add token parameter to simulation endpoints and remove sign-in retry logic from Prediksi module.

main
MrWaradana 4 weeks ago
parent 4ce0ad9765
commit 75bec015ea

@ -75,7 +75,7 @@ async def get_maximo_record_by_assetnum(db_session: CollectorDbSession, assetnum
)
@router.get("/simulate/{assetnum}")
async def simulate_equipment(db_session: DbSession, assetnum: str):
async def simulate_equipment(db_session: DbSession, assetnum: str, token: Token):
"""Stream progress events while running the simulation (prediksi + EAC).
This endpoint returns Server-Sent Events (SSE). Each event's `data` is
@ -98,7 +98,7 @@ async def simulate_equipment(db_session: DbSession, assetnum: str):
yield f"data: {json.dumps({'status':'started','step':'prediksi','message':'Menghitung prediksi'})}\n\n"
try:
prediksi = await prediksi_main(assetnum=assetnum)
prediksi = await prediksi_main(assetnum=assetnum, token=token)
except Exception as exc:
# send error event and stop
yield f"data: {json.dumps({'status':'error','step':'prediksi','message':str(exc)})}\n\n"
@ -140,7 +140,7 @@ async def simulate_equipment(db_session: DbSession, assetnum: str):
@router.get("/simulate-all")
async def simulate_all_equipment(db_session: DbSession):
async def simulate_all_equipment(db_session: DbSession, token: Token):
"""Run simulation (prediksi + EAC) for ALL equipment.
Returns SSE stream of progress.
"""
@ -167,7 +167,7 @@ async def simulate_all_equipment(db_session: DbSession):
await update_initial_simulation_data(db_session=db_session, assetnum=assetnum)
# Prediksi
await prediksi_main(assetnum=assetnum)
await prediksi_main(assetnum=assetnum, token=token)
# EAC
eac = Eac()
eac.hitung_eac_equipment(assetnum=assetnum)

@ -587,7 +587,7 @@ class Prediksi:
self.refresh_token = d.get("refresh_token")
return data
except httpx.HTTPError as e:
print(f"Sign-in failed: {e}")
print(f"Sign-in failed for URL {self.AUTH_APP_URL}/sign-in: {type(e).__name__} - {e}")
# Try to sign out if sign-in failed
try:
signout_url = f"{self.AUTH_APP_URL}/sign-out"
@ -595,14 +595,8 @@ class Prediksi:
await client.get(signout_url, timeout=10.0)
print("Signed out due to sign-in failure.")
except Exception as signout_exc:
print(f"Sign-out failed: {signout_exc}")
# Try to sign in again
try:
signin_res = await self.sign_in()
if self.access_token:
return signin_res
except Exception as signin_exc:
print(f"Sign-in failed after sign-out: {signin_exc}")
print(f"Sign-out failed for URL {self.AUTH_APP_URL}/sign-out: {type(signout_exc).__name__} - {signout_exc}")
return None
async def refresh_access_token(self) -> str:

Loading…
Cancel
Save