Skip to content

Commit a60f35e

Browse files
Change AcsService getUserRoleCodeAndId() to throw a BadRequestException
if we are unable to retrieve the users job role code
1 parent a7320cf commit a60f35e

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@ __pycache__/
1313
.venv/
1414
smoketest-report.xml
1515
*.code-workspace
16+
.python-version
17+

docker/service/src/main/java/uk/nhs/adaptors/scr/services/AcsService.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,22 @@ private Pair<String, String> getUserRoleCodeAndId(String authorisation, String n
9090

9191
}
9292

93+
// if we haven't retrieved a role code from openID we try the SDS service
9394
try {
94-
return Pair.of(sdsService.getUserRoleCode(nhsdSessionUrid), nhsdIdentity);
95+
var roleCode = sdsService.getUserRoleCode(nhsdSessionUrid);
96+
if (roleCode != null && !roleCode.isEmpty()) {
97+
return Pair.of(roleCode, nhsdIdentity);
98+
}
9599
} catch (BadRequestException | URISyntaxException e) {
100+
LOGGER.info(String.format("Unable to determine Job Role Code for "
101+
+ "the given RoleID via the SDS Service: %s", nhsdSessionUrid));
96102
throw new BadRequestException(String.format("Unable to determine SDS Job Role Code for "
97103
+ "the given RoleID: %s", nhsdSessionUrid));
98104
}
105+
LOGGER.info(String.format("Unable to determine Job Role Code for "
106+
+ "the given RoleID via the SDS Service: %s", nhsdSessionUrid));
107+
throw new BadRequestException(String.format("Unable to determine SDS Job Role Code for "
108+
+ "the given RoleID: %s", nhsdSessionUrid));
99109
}
100110

101111
private String prepareAcsRequest(ParametersParameterComponent parameter, RequestData requestData, String sdsJobRoleCode,

0 commit comments

Comments
 (0)