GUI: daq_worker.py added handle all prgroups request for staff members
This commit is contained in:
1 parent
82a478925a
commit
da821a5e3d
1 file changed
+28
@@ -31,6 +31,7 @@ class DAQWorker(QObject):
|
||||
standard_scan_completed = Signal(CompletedRotationScan)
|
||||
raster_generated_by_ml = Signal(RasterGridRequest)
|
||||
face_detection_result = Signal(dict)
|
||||
staff_pgroups_loaded = Signal(list)
|
||||
|
||||
def __init__(self, base_url: str | None, token: str, parent=None):
|
||||
super().__init__(parent)
|
||||
@@ -223,6 +224,33 @@ class DAQWorker(QObject):
|
||||
else:
|
||||
self.generic_put(f"access/pgroup?val={val}")
|
||||
|
||||
@Slot(QNetworkReply)
|
||||
def _handle_all_pgroups_response(self, reply: QNetworkReply):
|
||||
try:
|
||||
response_data = self.handle_response(reply)
|
||||
import json
|
||||
arr = json.loads(response_data) if response_data else []
|
||||
if not isinstance(arr, list):
|
||||
raise RuntimeError("Invalid all_pgroups payload")
|
||||
# Ensure list[str]
|
||||
out = [str(x) for x in arr if isinstance(x, (str, int))]
|
||||
self.staff_pgroups_loaded.emit(out)
|
||||
except Exception as e:
|
||||
logger.error(f"Exception from all_pgroups response: {e}")
|
||||
self.http_error.emit(str(e))
|
||||
|
||||
@Slot()
|
||||
def get_all_pgroups(self):
|
||||
logger.debug("PUT /access/all_pgroups")
|
||||
if self.__base_url is None:
|
||||
self.staff_pgroups_loaded.emit([])
|
||||
return
|
||||
request = QNetworkRequest(QUrl(f"{self.__base_url}/access/all_pgroups"))
|
||||
request.setRawHeader(b"Authorization", f"Bearer {self.__token}".encode("utf-8"))
|
||||
request.setRawHeader(b"Content-Type", b"application/json")
|
||||
reply = self.__net_manager.put(request, QByteArray(b""))
|
||||
reply.finished.connect(lambda: self._handle_all_pgroups_response(reply))
|
||||
|
||||
@Slot(SampleCameraSettings)
|
||||
def samcam_settings(self, s: SampleCameraSettings):
|
||||
self.generic_put("beamline/samcam", s.model_dump_json())
|
||||
|
||||
Reference in new issue
Block a user