@@ -2,12 +2,12 @@ import 'dart:convert';
22import 'dart:io' ;
33
44import 'package:args/command_runner.dart' ;
5+ import 'package:data/datasource/configurator_backend/configurator_bakcend.dart' ;
56import 'package:data/dto/application/application.dart' ;
67import 'package:mason_logger/mason_logger.dart' ;
78import 'package:path/path.dart' as path;
89import 'package:mustache_template/mustache.dart' ;
910
10-
1111import 'package:webtrit_phone_tools/src/commands/constants.dart' ;
1212import 'package:webtrit_phone_tools/src/commands/keystore_generate_command.dart' ;
1313import 'package:webtrit_phone_tools/src/commands/assetlinks_generate_command.dart' ;
@@ -17,23 +17,32 @@ import 'package:webtrit_phone_tools/src/utils/utils.dart';
1717
1818const _applicationIdOptionName = 'applicationId' ;
1919const _directoryParameterName = '<directory>' ;
20+ const _token = 'token' ;
2021
2122class KeystoreInitCommand extends Command <int > {
2223 KeystoreInitCommand ({
2324 required Logger logger,
2425 required HttpClient httpClient,
26+ required ConfiguratorBackandDatasource datasource,
2527 required KeystoreReadmeUpdater keystoreReadmeUpdater,
2628 }) : _logger = logger,
2729 _httpClient = httpClient,
2830 _readmeUpdater = keystoreReadmeUpdater,
31+ _datasource = datasource,
2932 _commandRunner = CommandRunner <int >('tool' , 'A tool to manage keystore' )
3033 ..addCommand (KeystoreGenerateCommand (logger: logger))
3134 ..addCommand (AssetlinksGenerateCommand (logger: logger)) {
32- argParser.addOption (
33- _applicationIdOptionName,
34- help: 'Application ID to initialize the keystore project.' ,
35- mandatory: true ,
36- );
35+ argParser
36+ ..addOption (
37+ _applicationIdOptionName,
38+ help: 'Application ID to initialize the keystore project.' ,
39+ mandatory: true ,
40+ )
41+ ..addOption (
42+ _token,
43+ help: 'JWT token for configurator API.' ,
44+ mandatory: true ,
45+ );
3746 }
3847
3948 @override
@@ -46,6 +55,7 @@ class KeystoreInitCommand extends Command<int> {
4655 final Logger _logger;
4756
4857 final HttpClient _httpClient;
58+ final ConfiguratorBackandDatasource _datasource;
4959
5060 final KeystoreReadmeUpdater _readmeUpdater;
5161
@@ -73,6 +83,13 @@ class KeystoreInitCommand extends Command<int> {
7383 return ExitCode .usage.code;
7484 }
7585
86+ final jwtToken = commandArgResults[_token] as String ;
87+ final authHeader = {'Authorization' : 'Bearer $jwtToken ' };
88+ if (jwtToken.isEmpty) {
89+ _logger.err ('Option "$_token " can not be empty.' );
90+ return ExitCode .usage.code;
91+ }
92+
7693 final applicationId = commandArgResults[_applicationIdOptionName] as String ;
7794 if (applicationId.isEmpty) {
7895 _logger.err ('Option "$_applicationIdOptionName " cannot be empty.' );
@@ -81,7 +98,10 @@ class KeystoreInitCommand extends Command<int> {
8198
8299 ApplicationDTO application;
83100 try {
84- application = await _httpClient.getApplication (applicationId);
101+ application = await _datasource.getApplication (
102+ applicationId: applicationId,
103+ headers: authHeader,
104+ );
85105 } catch (e) {
86106 _logger.err (e.toString ());
87107 return ExitCode .usage.code;
0 commit comments