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 tId = argResults!['translation-id'] as String;
  final name = argResults!['name'] as String;
  final id = argResults?['id'] as String? ?? '';
  final formatStr = argResults?['format'] as String? ?? 'text';
  final position =
      int.tryParse(argResults?['position'] as String? ?? '0') ?? 0;
  final customFields =
      argResults?['custom-fields'] as List<String>? ?? [];

  final format = Variable_Format.values.firstWhere(
    (f) => f.name.toLowerCase() == formatStr.toLowerCase(),
    orElse: () => Variable_Format.text,
  );

  final variable = Variable(
    translationId: tId,
    name: name,
    format: format,
    position: position,
  );
  if (id.isNotEmpty) {
    variable.id = id;
  }
  variable.customFields.addAll(customFields);

  final client = container.read(variableServiceClientProvider);
  final result = await client.upsertVariable(
    variable,
    options: getCallOptions(requireUser: false),
  );
  printOutput(result);
  return 0;
}