showCurrentUser static method

Future<void> showCurrentUser(
  1. Client cloudApiClient, {
  2. required CommandLogger logger,
})

Implementation

static Future<void> showCurrentUser(
  final Client cloudApiClient, {
  required final CommandLogger logger,
}) async {
  final user = await cloudApiClient.users.readUser();

  SubscriptionInfo? subscriptionInfo;
  try {
    subscriptionInfo = await cloudApiClient.plans.getSubscriptionInfo();
  } on NoSubscriptionException catch (_) {
  } on Exception catch (e) {
    logger.debug('Failed to fetch subscription info: $e');
  }

  final planDisplayName = subscriptionInfo?.planDisplayName ?? 'No plan';
  final status = _determineStatus(subscriptionInfo) ?? '';

  final table = TablePrinter(
    headers: ['Email', 'Plan', 'Status'],
    rows: [
      [user.email, planDisplayName, status],
    ],
  );
  table.writeLines(logger.line);
}