run method

  1. @override
Future<int> run()
override

Runs this command.

The return value is wrapped in a Future if necessary and returned by CommandRunner.runCommand.

Implementation

@override
Future<int> run() async {
  final name = argResults!['name'] as String;
  final id = argResults?['id'] as String? ?? '';
  final description = argResults?['description'] as String? ?? '';
  var userId = argResults?['user-id'] as String? ?? '';

  if (userId.isEmpty) {
    final userClient = container.read(userServiceClientProvider);
    final currentUser = await userClient.getCurrentUser(
      Empty(),
      options: getCallOptions(),
    );
    userId = currentUser.id;
  }

  final group = Group(
    name: name,
    description: description,
    userId: userId,
  );
  if (id.isNotEmpty) {
    group.id = id;
  }

  final client = container.read(groupServiceClientProvider);
  final result = await client.upsertGroup(
    group,
    options: getCallOptions(),
  );
  printOutput(result);
  return 0;
}