Skip to content

Commit ef26b9c

Browse files
committed
Adjust fetching nodebb user to plugin adjustments for Nodebb v3 api
1 parent 791d2a6 commit ef26b9c

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/main/java/com/faforever/api/forum/NodebbService.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,13 @@ public void userDataChanged(UserUpdatedEvent event) {
5555
private Optional<Integer> getNodebbUserId(int userId) {
5656
URI uri = UriComponentsBuilder.fromHttpUrl(properties.getNodebb().getBaseUrl())
5757
// This is not an official NodeBB api url, it's coming from our own sso plugin
58-
.pathSegment("api", "user", "oauth", String.valueOf(userId))
58+
.pathSegment("api", "v3", "plugins", "sso", "user", String.valueOf(userId))
59+
.queryParam("_uid", getAdminUserId())
5960
.build()
6061
.toUri();
6162

6263
try {
63-
ResponseEntity<UserResponse> result = restTemplate.exchange(uri, HttpMethod.GET, null, UserResponse.class);
64+
ResponseEntity<UserResponse> result = restTemplate.exchange(uri, HttpMethod.GET, buildAuthorizedRequest(null), UserResponse.class);
6465
return Optional.ofNullable(result.getBody()).map(UserResponse::uid);
6566
} catch (HttpClientErrorException e) {
6667
if (e.getStatusCode() == HttpStatus.NOT_FOUND) {
@@ -78,7 +79,7 @@ private void updateUsernameData(int nodebbUserId, UserUpdatedEvent event) {
7879
.build()
7980
.toUri();
8081

81-
var usernameUpdate = new UsernameUpdate(String.valueOf(properties.getNodebb().getAdminUserId()), event.getUsername());
82+
var usernameUpdate = new UsernameUpdate(getAdminUserId(), event.getUsername());
8283
restTemplate.exchange(uri, HttpMethod.PUT, buildAuthorizedRequest(usernameUpdate), Void.class);
8384
log.debug("Username updated in NodeBB: {}", event);
8485
}
@@ -89,11 +90,15 @@ private void updateEmailData(int nodebbUserId, UserUpdatedEvent event) {
8990
.build()
9091
.toUri();
9192

92-
var usernameUpdate = new EmailUpdate(String.valueOf(properties.getNodebb().getAdminUserId()), event.getEmail(), 1);
93-
restTemplate.exchange(uri, HttpMethod.PUT, buildAuthorizedRequest(usernameUpdate), Void.class);
93+
var usernameUpdate = new EmailUpdate(getAdminUserId(), event.getEmail(), 1);
94+
restTemplate.exchange(uri, HttpMethod.POST, buildAuthorizedRequest(usernameUpdate), Void.class);
9495
log.debug("Email updated in NodeBB: {}", event);
9596
}
9697

98+
private String getAdminUserId() {
99+
return String.valueOf(properties.getNodebb().getAdminUserId());
100+
}
101+
97102
private <T> HttpEntity<T> buildAuthorizedRequest(T payload) {
98103
LinkedMultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
99104
headers.add(HttpHeaders.AUTHORIZATION, "Bearer " + properties.getNodebb().getMasterToken());

0 commit comments

Comments
 (0)