Skip to content

Commit 239d7e9

Browse files
committed
Rearannged functions by purpose
1 parent f527b5c commit 239d7e9

File tree

2 files changed

+51
-51
lines changed

2 files changed

+51
-51
lines changed

src/murfey/instrument_server/api.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -215,14 +215,6 @@ def stop_multigrid_watcher(session_id: MurfeySessionID, label: str):
215215
return {"success": True}
216216

217217

218-
@router.post("/sessions/{session_id}/multigrid_controller/visit_end_time")
219-
def update_multigrid_controller_visit_end_time(
220-
session_id: MurfeySessionID, end_time: datetime
221-
):
222-
controllers[session_id].update_visit_time(end_time)
223-
return {"success": True}
224-
225-
226218
@router.get("/sessions/{session_id}/multigrid_controller/status")
227219
def check_multigrid_controller_exists(
228220
session_id: MurfeySessionID,
@@ -232,6 +224,14 @@ def check_multigrid_controller_exists(
232224
return {"exists": False}
233225

234226

227+
@router.post("/sessions/{session_id}/multigrid_controller/visit_end_time")
228+
def update_multigrid_controller_visit_end_time(
229+
session_id: MurfeySessionID, end_time: datetime
230+
):
231+
controllers[session_id].update_visit_time(end_time)
232+
return {"success": True}
233+
234+
235235
class RsyncerSource(BaseModel):
236236
source: Path
237237

src/murfey/server/api/instrument.py

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,31 @@ async def check_if_session_is_active(
101101
return {"active": response.status == 200}
102102

103103

104+
@router.get("/sessions/{session_id}/multigrid_controller/status")
105+
async def check_multigrid_controller_exists(session_id: MurfeySessionID, db=murfey_db):
106+
session = db.exec(select(Session).where(Session.id == session_id)).one()
107+
instrument_name = session.instrument_name
108+
machine_config = get_machine_config(instrument_name=instrument_name)[
109+
instrument_name
110+
]
111+
if machine_config.instrument_server_url:
112+
log.debug(
113+
f"Submitting request to inspect multigrid controller for session {session_id}"
114+
)
115+
async with aiohttp.ClientSession() as clientsession:
116+
async with clientsession.get(
117+
f"{machine_config.instrument_server_url}{url_path_for('api.router', 'check_multigrid_controller_exists', session_id=session_id)}",
118+
headers={
119+
"Authorization": f"Bearer {instrument_server_tokens[session_id]['access_token']}"
120+
},
121+
) as resp:
122+
data: dict[str, Any] = await resp.json()
123+
else:
124+
data = {"detail": "No instrument server URL found"}
125+
log.debug(f"Received response: {data}")
126+
return data
127+
128+
104129
@router.post("/sessions/{session_id}/multigrid_watcher")
105130
async def setup_multigrid_watcher(
106131
session_id: MurfeySessionID, watcher_spec: MultigridWatcherSetup, db=murfey_db
@@ -165,28 +190,33 @@ async def start_multigrid_watcher(session_id: MurfeySessionID, db=murfey_db):
165190
return data
166191

167192

168-
@router.get("/sessions/{session_id}/multigrid_controller/status")
169-
async def check_multigrid_controller_exists(session_id: MurfeySessionID, db=murfey_db):
170-
session = db.exec(select(Session).where(Session.id == session_id)).one()
171-
instrument_name = session.instrument_name
193+
@router.post("/sessions/{session_id}/multigrid_controller/visit_end_time")
194+
async def update_visit_end_time(
195+
session_id: MurfeySessionID, end_time: datetime.datetime, db=murfey_db
196+
):
197+
# Load data for session
198+
session_entry = db.exec(select(Session).where(Session.id == session_id)).one()
199+
instrument_name = session_entry.instrument_name
200+
201+
# Update visit end time in database
202+
session_entry.visit_end_time = end_time
203+
db.add(session_entry)
204+
db.commit()
205+
206+
# Update the multigrid controller
207+
data = {}
172208
machine_config = get_machine_config(instrument_name=instrument_name)[
173209
instrument_name
174210
]
175211
if machine_config.instrument_server_url:
176-
log.debug(
177-
f"Submitting request to inspect multigrid controller for session {session_id}"
178-
)
179212
async with aiohttp.ClientSession() as clientsession:
180-
async with clientsession.get(
181-
f"{machine_config.instrument_server_url}{url_path_for('api.router', 'check_multigrid_controller_exists', session_id=session_id)}",
213+
async with clientsession.post(
214+
f"{machine_config.instrument_server_url}{url_path_for('api.router', 'update_multigrid_controller_visit_end_time', session_id=session_id)}?end_time={quote(end_time.isoformat())}",
182215
headers={
183216
"Authorization": f"Bearer {instrument_server_tokens[session_id]['access_token']}"
184217
},
185218
) as resp:
186-
data: dict[str, Any] = await resp.json()
187-
else:
188-
data = {"detail": "No instrument server URL found"}
189-
log.debug(f"Received response: {data}")
219+
data = await resp.json()
190220
return data
191221

192222

@@ -422,36 +452,6 @@ async def finalise_session(session_id: MurfeySessionID, db=murfey_db):
422452
return data
423453

424454

425-
@router.post("/sessions/{session_id}/multigrid_controller/visit_end_time")
426-
async def update_visit_end_time(
427-
session_id: MurfeySessionID, end_time: datetime.datetime, db=murfey_db
428-
):
429-
# Load data for session
430-
session_entry = db.exec(select(Session).where(Session.id == session_id)).one()
431-
instrument_name = session_entry.instrument_name
432-
433-
# Update visit end time in database
434-
session_entry.visit_end_time = end_time
435-
db.add(session_entry)
436-
db.commit()
437-
438-
# Update the multigrid controller
439-
data = {}
440-
machine_config = get_machine_config(instrument_name=instrument_name)[
441-
instrument_name
442-
]
443-
if machine_config.instrument_server_url:
444-
async with aiohttp.ClientSession() as clientsession:
445-
async with clientsession.post(
446-
f"{machine_config.instrument_server_url}{url_path_for('api.router', 'update_multigrid_controller_visit_end_time', session_id=session_id)}?end_time={quote(end_time.isoformat())}",
447-
headers={
448-
"Authorization": f"Bearer {instrument_server_tokens[session_id]['access_token']}"
449-
},
450-
) as resp:
451-
data = await resp.json()
452-
return data
453-
454-
455455
@router.post("/sessions/{session_id}/abandon_session")
456456
async def abandon_session(session_id: MurfeySessionID, db=murfey_db):
457457
data = {}

0 commit comments

Comments
 (0)