Skip to content

Commit

Permalink
refactor(webapi): improve texts and error messages
Browse files Browse the repository at this point in the history
  • Loading branch information
xayanide committed May 27, 2022
1 parent 6cee558 commit c64901b
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 26 deletions.
8 changes: 4 additions & 4 deletions src/webapi/HistoryRepository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,16 +89,16 @@ export class HistoryRepository {
while (!(await this.fetch(false)).filled && !this.lobbyClosed);
} catch (e: any) {
if (e instanceof Error) {
this.logger.error(`@updateToLatest : ${e.message}`);
this.logger.error(`@HistoryRepository#updateToLatest\n${e.message}\n${e.stack}`);
} else {
this.logger.error(`@updateToLatest :\n${e.message}\n${e.stack}`);
this.logger.error(`@HistoryRepository#updateToLatest\n${e}`);
}

this.hasError = true;
if (this.errorCount++ < HistoryRepository.ERR_COUNT_LIMIT) {
setTimeout(() => {
this.hasError = false;
this.logger.info(`restart fetching. count:${this.errorCount}`);
this.logger.info(`Restarted fetching. Count: ${this.errorCount}`);
}, HistoryRepository.RETRY_TIME_MS);
}
}
Expand Down Expand Up @@ -293,7 +293,7 @@ export class HistoryRepository {
if (r.count === 0) break; // 結果が空なら終わり
i = r.count - 1;
} catch (e: any) {
this.logger.error(`@calcCurrentOrderAsID - fetch :\n${e.message}\n${e.stack}`);
this.logger.error(`@HistoryRepository#calcCurrentOrderAsID\n${e.message}\n${e.stack}`);
throw e;
}
}
Expand Down
44 changes: 22 additions & 22 deletions src/webapi/WebApiClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,10 @@ class WebApiClientClass implements IBeatmapFetcher {
const p = this.getTokenPath(token.isGuest);
await fs.mkdir(path.dirname(p), { recursive: true });
await fs.writeFile(p, JSON.stringify(token), { encoding: 'utf8', flag: 'w' });
this.logger.info(`stored token to : ${p}`);
this.logger.info(`Stored token to: ${p}`);
return true;
} catch (e: any) {
this.logger.error(`storeToken error :\n${e.message}\n${e.stack}`);
this.logger.error(`@WebApiClient#storeToken\n${e.message}\n${e.stack}`);
return false;
}
}
Expand All @@ -96,13 +96,13 @@ class WebApiClientClass implements IBeatmapFetcher {
const j = await fs.readFile(p, 'utf8');
const token = JSON.parse(j) as ApiToken;
if (!isExpired(token)) {
this.logger.info(`loaded stored token from : ${p}`);
this.logger.info(`Loaded stored token from: ${p}`);
return token;
}
this.deleteStoredToken(asGuest);
this.logger.info('deleted expired stored token');
this.logger.info('Deleted expired stored token.');
} catch (e: any) {
this.logger.error(`loadStoredToken error :\n${e.message}\n${e.stack}`);
this.logger.error(`@WebApiClient#loadStoredToken\n${e.message}\n${e.stack}`);
}
}

Expand All @@ -116,7 +116,7 @@ class WebApiClientClass implements IBeatmapFetcher {
try {
fs.unlink(p);
} catch (e: any) {
this.logger.error(`load token error :\n${e.message}\n${e.stack}`);
this.logger.error(`@WebApiClient#deleteStoredToken\n${e.message}\n${e.stack}`);
}
}

Expand All @@ -132,10 +132,10 @@ class WebApiClientClass implements IBeatmapFetcher {
});
response.data.isGuest = false;
response.data.expires_in += Date.now() / 1000;
this.logger.info('get Authorized token');
this.logger.info('Got authorized token.');
return response.data;
} catch (e: any) {
this.logger.error(`getAuthorizedToken error :\n${e.message}\n${e.stack}`);
this.logger.error(`@WebApiClient#getAuthorizedToken\n${e.message}\n${e.stack}`);
}
}

Expand All @@ -147,34 +147,34 @@ class WebApiClientClass implements IBeatmapFetcher {
res.setHeader('Content-Type', 'text/html');
res.writeHead(200, { 'Content-Type': 'text/plain' });
if (!req.url) {
res.end('missing req.url');
res.end('Missing request URL.');
return;
}
const url = new URL(req.url, `http://${req.headers.host}`);
code = url.searchParams.get('code');
if (code === null) {
res.end('missing code');
res.end('Missing code.');
return;
}
res.end(`ok : ${code}`);
this.logger.trace(`got code! ${code}`);
res.end(`Ok: ${code}`);
this.logger.trace(`Got code! ${code}`);
server.close(() => {
this.logger.trace('closed callback');
this.logger.trace('Closed callback.');
});
if (res.connection) {
res.connection.end();
res.connection.destroy();
} else {
reject('no connection');
reject('No connection');
}

});
server.once('close', () => {
this.logger.trace('closed event');
this.logger.trace('Detected close event.');
if (code === null) {
reject('no code');
reject('No code');
} else {
this.logger.info('get Authorized code');
this.logger.info('Got authorized code.');
resoleve(code);
}
});
Expand All @@ -200,14 +200,14 @@ class WebApiClientClass implements IBeatmapFetcher {
response.data.expires_in += Date.now() / 1000;
return response.data;
} catch (e: any) {
this.logger.error(`getGuestToken error :\n${e.message}\n${e.stack}`);
this.logger.error(`@WebApiClient#getGuestToken\n${e.message}\n${e.stack}`);
}
}

async accessApi(url: string, config: any = {}, tryCount: number = 2): Promise<any> {
while (tryCount-- > 0) {
if (!await this.updateToken() || !this.token) {
throw new Error('accessApi error : couldn\'t get valid token');
throw new Error('@WebApiClient#accessApi: Failed getting valid token');
}

config.headers = {
Expand All @@ -219,13 +219,13 @@ class WebApiClientClass implements IBeatmapFetcher {
try {
const response = await axios(url, config);
if (response.status !== 200) {
this.logger.error(`accessApi error: ${url}, status: ${response.status}, msg: ${response.statusText}`);
this.logger.error(`@WebApiClient#accessApi\nURL: ${url}\nStatus: ${response.status}\nMessage: ${response.statusText}`);
}
return response.data;
} catch (e: any) {
switch (e.response?.status) {
case 401:
this.logger.info('api access failed, delete current token.');
this.logger.info('@WebApiClient#accessApi\nFailed to access API, deleting current token...');
this.deleteStoredToken(this.option.asGuest);
this.token = undefined;
break;
Expand All @@ -234,7 +234,7 @@ class WebApiClientClass implements IBeatmapFetcher {
}
}
}
throw new Error('couldn\'t access api');
throw new Error('Failed to access API');
}

async getChatUpdates() {
Expand Down

0 comments on commit c64901b

Please sign in to comment.