MCPcopy Create free account
hub / github.com/dank/rlapi / RPC

Function RPC

examples/setup/setup.go:15–53  ·  view source on GitHub ↗

RPC return an authenticated PsyNetRPC client and a PlayerID for easy setup in examples.

()

Source from the content-addressed store, hash-verified

13
14// RPC return an authenticated PsyNetRPC client and a PlayerID for easy setup in examples.
15func RPC() (*rlapi.PsyNetRPC, rlapi.PlayerID) {
16 egs := rlapi.NewEGS()
17 var auth *rlapi.TokenResponse
18 var authToken *rlapi.EOSTokenResponse
19
20 if refreshTokenData, err := os.ReadFile(".rlshops"); err == nil && len(strings.TrimSpace(string(refreshTokenData))) > 0 {
21 refreshToken := strings.TrimSpace(string(refreshTokenData))
22 auth, err = egs.AuthenticateWithRefreshToken(refreshToken)
23 if err != nil {
24 slog.Error("Failed to authenticate with refresh token", slog.Any("err", err))
25 auth = authenticateWithCode(egs)
26 }
27 } else {
28 auth = authenticateWithCode(egs)
29 }
30
31 err := os.WriteFile(".rlshops", []byte(auth.RefreshToken), 0644)
32 if err != nil {
33 slog.Error("Failed to save refresh token", slog.Any("err", err))
34 }
35
36 code, err := egs.GetExchangeCode(auth.AccessToken)
37 if err != nil {
38 log.Fatalf("Failed to get exchange code: %v", err)
39 }
40
41 authToken, err = egs.ExchangeEOSToken(code)
42 if err != nil {
43 log.Fatalf("Failed to exchange EOS token: %v", err)
44 }
45
46 psyNet := rlapi.NewPsyNet()
47 rpc, err := psyNet.AuthPlayer(authToken.AccessToken, authToken.AccountID, auth.DisplayName)
48 if err != nil {
49 log.Fatalf("Failed to authenticate player: %v", err)
50 }
51
52 return rpc, rlapi.NewPlayerID(rlapi.PlatformEpic, authToken.AccountID)
53}
54
55func authenticateWithCode(egs *rlapi.EGS) *rlapi.TokenResponse {
56 authURL := egs.GetAuthURL()

Callers 2

mainFunction · 0.92
mainFunction · 0.92

Calls 9

GetExchangeCodeMethod · 0.95
ExchangeEOSTokenMethod · 0.95
AuthPlayerMethod · 0.95
NewEGSFunction · 0.92
NewPsyNetFunction · 0.92
NewPlayerIDFunction · 0.92
authenticateWithCodeFunction · 0.85
ErrorMethod · 0.80

Tested by

no test coverage detected