selfGetAccount method

Future<Account?> selfGetAccount()

Implementation

Future<Account?> selfGetAccount() async {
	final client = HttpClient();
	final url = Uri.parse('$apiBaseUrl/auth/account/');

	try {
		if (tokenType != TokenType.user) {
			print('[Stdoat_ExtraUtils]: selfGetAccount requires a User Token to use.');
			return null;
		}

		final request = await client.getUrl(url);
		request.headers.add(authHeaderKey, token);
		final response = await request.close();
		final responseBody = await response.transform(utf8.decoder).join();

		if (response.statusCode == 429) {
			print('[Stdoat_ExtraUtils]: 429 - Bot ratelimited.');
			return null;
		} else if (response.statusCode == 200) {
			final data = jsonDecode(responseBody);
			return Account.fromJson(data);
		} else {
			print('[Stdoat_ExtraUtils]: Failed to fetch account. Status code: ${response.statusCode}. Body: $responseBody');
			return null;
		}
	} catch (e) {
		print('[Stdoat_ExtraUtils]: An error occured: $e');
		return null;
	} finally {
		client.close();
	}
}