Skip to content

Commit b2d1e3d

Browse files
committed
[FEATURE] New method restoreFromExternal
1 parent 8760d3a commit b2d1e3d

2 files changed

Lines changed: 25 additions & 3 deletions

File tree

components/launcher-client/src/main/java/pro/gravit/launcher/client/LauncherAPIInitializer.java

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -227,24 +227,43 @@ public CompletableFuture<SelfUser> getCurrentUser() {
227227
@Override
228228
public CompletableFuture<AuthResponse> auth(String login, pro.gravit.launcher.core.api.method.AuthMethodPassword password) {
229229
return microsoft.auth(login, password).thenCompose(response ->
230-
base.restore(response.authToken().getAccessToken(), true)
230+
base.restoreFromExternal(response, true)
231231
.thenApply(user -> new AuthResponse(user == null ? response.user() : user, response.authToken())));
232232
}
233233

234234
@Override
235235
public CompletableFuture<AuthToken> refreshToken(String refreshToken) {
236236
return microsoft.refreshToken(refreshToken).thenCompose(token ->
237-
base.restore(token.getAccessToken(), false).thenApply(user -> token));
237+
base.restoreFromExternal(new AuthResponse(null, token), false).thenApply(user -> token));
238238
}
239239

240240
@Override
241241
public CompletableFuture<SelfUser> restore(String accessToken, boolean fetchUser) {
242-
return base.restore(accessToken, fetchUser);
242+
return microsoft.restore(accessToken, fetchUser).thenCompose(token ->
243+
base.restoreFromExternal(new AuthResponse(null, new MicrosiftBridgedRestoreAuthToken(accessToken)), false).thenApply(user -> token));
243244
}
244245

245246
@Override
246247
public CompletableFuture<Void> exit() {
247248
return base.exit().thenCompose(result -> microsoft.exit());
248249
}
250+
251+
public record MicrosiftBridgedRestoreAuthToken(String token) implements AuthToken {
252+
253+
@Override
254+
public String getAccessToken() {
255+
return token;
256+
}
257+
258+
@Override
259+
public String getRefreshToken() {
260+
return null;
261+
}
262+
263+
@Override
264+
public long getExpire() {
265+
return 0;
266+
}
267+
}
249268
}
250269
}

components/launcher-core/src/main/java/pro/gravit/launcher/core/api/features/AuthFeatureAPI.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ public interface AuthFeatureAPI extends FeatureAPI {
1010
CompletableFuture<AuthResponse> auth(String login, AuthMethodPassword password);
1111
CompletableFuture<AuthToken> refreshToken(String refreshToken);
1212
CompletableFuture<SelfUser> restore(String accessToken, boolean fetchUser);
13+
default CompletableFuture<SelfUser> restoreFromExternal(AuthResponse external, boolean fetchUser) {
14+
return CompletableFuture.completedFuture(null);
15+
}
1316
CompletableFuture<Void> exit();
1417

1518
record AuthResponse(SelfUser user, AuthToken authToken) {}

0 commit comments

Comments
 (0)