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}") @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). """Stream progress events while running the simulation (prediksi + EAC).
This endpoint returns Server-Sent Events (SSE). Each event's `data` is 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" yield f"data: {json.dumps({'status':'started','step':'prediksi','message':'Menghitung prediksi'})}\n\n"
try: try:
prediksi = await prediksi_main(assetnum=assetnum) prediksi = await prediksi_main(assetnum=assetnum, token=token)
except Exception as exc: except Exception as exc:
# send error event and stop # send error event and stop
yield f"data: {json.dumps({'status':'error','step':'prediksi','message':str(exc)})}\n\n" 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") @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. """Run simulation (prediksi + EAC) for ALL equipment.
Returns SSE stream of progress. 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) await update_initial_simulation_data(db_session=db_session, assetnum=assetnum)
# Prediksi # Prediksi
await prediksi_main(assetnum=assetnum) await prediksi_main(assetnum=assetnum, token=token)
# EAC # EAC
eac = Eac() eac = Eac()
eac.hitung_eac_equipment(assetnum=assetnum) eac.hitung_eac_equipment(assetnum=assetnum)

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

Loading…
Cancel
Save