@@ -6,7 +6,6 @@ The following compiler directives are available and are useful for local
66development:
77```pascal
88{$DEFINE WASP_LOCAL_DEVELOPMENT}
9- {$DEFINE WASP_ACCESS_TOKEN := 'access_token'}
109{$DEFINE WASP_REFRESH_TOKEN := 'refresh_token'}
1110{$DEFINE SCRIPT_ID := 'script_uuid'}
1211{$DEFINE SCRIPT_REVISION := 'script_revision'}
@@ -19,8 +18,7 @@ As for the others, you can get values for them by running Simba through
1918(wasp-launcher)[https://github.com/WaspScripts/wasp-launcher] and running
2019something like this:
2120```pascal
22- begin
23- WriteLn GetEnvVar('WASP_ACCESS_TOKEN');
21+ begin
2422 WriteLn GetEnvVar('WASP_REFRESH_TOKEN');
2523 WriteLn GetEnvVar('SCRIPT_ID');
2624 WriteLn GetEnvVar('SCRIPT_REVISION');
7876 Async.ScheduleStop('WaspClient-RefreshToken');
7977end;
8078
81- function TWaspClient.CreateSession(accessToken, refreshToken: String): Boolean;
82- var
83- response: String;
84- json: TJSONParser;
85- begin
86- Self.Client.RequestHeader['Authorization'] := 'Bearer ' + accessToken;
87- Self.Client.RequestHeader['RefreshToken'] := refreshToken;
88-
89- try
90- response := Self.Client.Get(Self.Server + 'session');
91- except
92- WriteLn GetDebugLn('WaspClient', GetExceptionMessage());
93- Exit;
94- end;
95-
96- Result := InRange(Self.Client.ResponseStatus.AsInteger, 200, 299);
97- if not Result then
98- begin
99- WriteLn GetDebugLn('WaspClient', response);
100- Exit;
101- end;
102-
103- json := new TJSONParser();
104- json.Parse(response);
105-
106- Self.Client.RequestHeader['Authorization'] := 'Bearer ' + json.Item['access_token'].AsString;
107- Self.Client.RequestHeader['RefreshToken'] := json.Item['refresh_token'].AsString;
108- end;
10979
11080procedure TWaspClient.RefreshSession();
11181var
@@ -117,9 +87,16 @@ begin
11787
11888 payload := '{"refresh_token": "' + Self.Client.RequestHeader['RefreshToken'] + '"}';
11989
120- response := Self.Client.Post(
121- Self.Database + 'auth/v1/token?grant_type=refresh_token', payload
122- );
90+ try
91+ response := Self.Client.Post(
92+ Self.Database + 'auth/v1/token?grant_type=refresh_token', payload
93+ );
94+ except
95+ WriteLn GetDebugLn('WaspClient', GetExceptionMessage());
96+ Self.IsSetup := False;
97+ Self.Lock.Leave();
98+ Exit;
99+ end;
123100
124101 if not InRange(Self.Client.ResponseStatus.AsInteger, 200, 299) then
125102 begin
@@ -135,10 +112,6 @@ begin
135112 Self.Client.RequestHeader['Authorization'] := 'Bearer ' + json.Item['access_token'].AsString;
136113 Self.Client.RequestHeader['RefreshToken'] := json.Item['refresh_token'].AsString;
137114
138- {$IFDEF WASP_ACCESS_TOKEN}
139- FileWrite(WLEnv.ConfigsDir + 'access_token.txt', json.Item['access_token'].AsString);
140- {$ENDIF}
141-
142115 {$IFDEF WASP_REFRESH_TOKEN}
143116 FileWrite(WLEnv.ConfigsDir + 'refresh_token.txt', json.Item['refresh_token'].AsString);
144117 WriteLn GetDebugLn('WaspClient', 'Refresh token was refreshed: ' + json.Item['refresh_token'].AsString);
154127
155128procedure TWaspClient.Setup();
156129var
157- accessToken, refreshToken: String;
130+ refreshToken: String;
158131begin
159132 {$IFDEF WASP_LOCAL_DEVELOPMENT}
160133 Self.Server := 'http://localhost:3000/';
@@ -169,16 +142,6 @@ begin
169142 Self.Client.RequestHeader['Content-Type'] := 'application/json';
170143 Self.Client.RequestHeader['apikey'] := Self.APIKey;
171144
172- {$IFDEF WASP_ACCESS_TOKEN}
173- accessToken := {$MACRO WASP_ACCESS_TOKEN};
174- if accessToken = 'file' then
175- accessToken := FileRead(WLEnv.ConfigsDir + 'access_token.txt');
176- {$ELSE}
177- accessToken := GetEnvVar('WASP_ACCESS_TOKEN');
178- {$ENDIF}
179- if accessToken = '' then
180- Exit;
181-
182145 {$IFDEF WASP_REFRESH_TOKEN}
183146 refreshToken := {$MACRO WASP_REFRESH_TOKEN};
184147 if refreshToken = 'file' then
@@ -205,10 +168,6 @@ begin
205168 Self.Script.Revision := StrToInt(GetEnvVar('SCRIPT_REVISION'), 0);
206169 {$ENDIF}
207170
208- Self.IsSetup := Self.CreateSession(accessToken, refreshToken);
209- if not Self.IsSetup then
210- Exit;
211-
212171 Self.Payload := new TJSONObject();
213172 Self.Payload.AddInt('experience', 0);
214173 Self.Payload.AddInt('gold', 0);
0 commit comments