-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Minor
-
None
-
Affects Version/s: None
-
Component/s: subject API
-
None
-
Environment:Using Python 3.12 with "httpx" client pointed at Grouper REST API.
When issuing a WsRestGetSubjectsRequest request via the Grouper REST API, and specifying multiple subjectIdentifiers, e.g. (in Python representation):
{'WsRestGetSubjectsRequest': {'subjectAttributeNames': ['employeenumber', |
'description', |
'givenname', 'sn', |
'mail'], |
'wsSubjectLookups': [{'subjectIdentifier': 'bar'}, |
{'subjectIdentifier': 'C54735441'}, |
{'subjectIdentifier': 'C15882409'}, |
{'subjectIdentifier': 'foo'}]}} |
Hits are each correctly returned with a resultCode of SUCCESS, but it looks like all misses collectively return a single SUBJECT_NOT_FOUND result for only one of the misses, e.g. (again in Python representation):
{'WsGetSubjectsResults': {'responseMetadata': {'millis': '365', |
'serverVersion': '4.12.0'}, |
'resultMetadata': {'resultCode': 'SUCCESS', |
'resultMessage': 'Queried 3 ' |
'subjects', |
'success': 'T'}, |
'subjectAttributeNames': ['employeenumber', |
'description', 'givenname', |
'sn', 'mail'], |
'wsSubjects': [{'identifierLookup': 'foo', |
'resultCode': 'SUBJECT_NOT_FOUND', |
'success': 'F'}, |
{'attributeValues': ['C15882409', |
'Christopher ' |
'Green ' |
'(cgreen@internet2.edu) ' |
'- ' |
'christopher.green@at.internet2.edu', |
'Christopher', |
'Green', |
'cgreen@internet2.edu'], |
'id': 'christopher.green@at.internet2.edu', |
'identifierLookup': 'C15882409', |
'name': 'Christopher Green', |
'resultCode': 'SUCCESS', |
'sourceId': 'i2user', |
'success': 'T'}, |
{'attributeValues': ['C54735441', |
'Mike Simpson ' |
'(msimpson@internet2.edu) ' |
'- ' |
'mike.simpson@at.internet2.edu', |
'Mike', 'Simpson', |
'msimpson@internet2.edu'], |
'id': 'mike.simpson@at.internet2.edu', |
'identifierLookup': 'C54735441', |
'name': 'Mike Simpson', |
'resultCode': 'SUCCESS', |
'sourceId': 'i2user', |
'success': 'T'}]}} |
I think a more correct behavior would be to return a SUBJECT_NOT_FOUND result for each of the identifier searches that resulted in a miss.