"""Client API for users in Nexus."""fromuuidimportUUIDimportqnexus.exceptionsasqnx_excfromqnexus.clientimportget_nexus_clientfromqnexus.contextimportmerge_scope_from_contextfromqnexus.models.referencesimportUserReffromqnexus.models.scopeimportScopeFilterEnum
[docs]defget_self()->UserRef:"""Get the logged in user."""res=get_nexus_client().get("/api/users/v1beta2/me")ifres.status_code!=200:raiseqnx_exc.ResourceFetchFailed(message=res.text,status_code=res.status_code)user_dict=res.json()returnUserRef(display_name=user_dict["data"]["attributes"]["display_name"],id=user_dict["data"]["id"],)
@merge_scope_from_contextdef_fetch_by_id(user_id:UUID,scope:ScopeFilterEnum=ScopeFilterEnum.USER)->UserRef:"""Get a specific user."""res=get_nexus_client().get(f"/api/users/v1beta/{user_id}",params={"scope":scope.value},)ifres.status_code!=200:raiseqnx_exc.ResourceFetchFailed(message=res.text,status_code=res.status_code)user_dict=res.json()returnUserRef(display_name=user_dict["data"]["attributes"]["display_name"],id=user_dict["data"]["id"],)