Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Side by Side Diff: lib/generator.dart

Issue 478663002: Add a few features (Closed) Base URL: https://github.com/dart-lang/discovery_api_dart_client_generator.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 library discovery_api_client_generator; 1 library discovery_api_client_generator;
2 2
3 import "dart:io"; 3 import "dart:io";
4 import "dart:async"; 4 import "dart:async";
5 import "dart:convert"; 5 import "dart:convert";
6 import 'package:google_discovery_v1_api/discovery_v1_api_client.dart'; 6 import 'package:google_discovery_v1_api/discovery_v1_api_client.dart';
7 import 'package:google_discovery_v1_api/discovery_v1_api_console.dart'; 7 import 'package:google_discovery_v1_api/discovery_v1_api_console.dart';
8 8
9 part "src/apis_package_generator.dart"; 9 part "src/apis_package_generator.dart";
10 part "src/config.dart"; 10 part "src/config.dart";
11 part "src/dart_api_library.dart"; 11 part "src/dart_api_library.dart";
12 part "src/dart_api_test_library.dart"; 12 part "src/dart_api_test_library.dart";
13 part "src/dart_comments.dart"; 13 part "src/dart_comments.dart";
14 part "src/dart_resources.dart"; 14 part "src/dart_resources.dart";
15 part "src/dart_schemas.dart"; 15 part "src/dart_schemas.dart";
16 part "src/namer.dart"; 16 part "src/namer.dart";
17 part "src/utils.dart"; 17 part "src/utils.dart";
18 part "src/uri_template.dart"; 18 part "src/uri_template.dart";
19 19
20
21 Future<List<DirectoryListItems>> listAllApis() {
22 return _discoveryClient.apis.list().then((DirectoryList list) {
23 return list.items;
24 });
25 }
26
20 List<GenerateResult> generateApiPackage( 27 List<GenerateResult> generateApiPackage(
21 List<RestDescription> descriptions, String outputDirectory) { 28 List<RestDescription> descriptions, String outputDirectory) {
22 var config = new Config('googleapis', '0.1.0-dev'); 29 var config = new Config('googleapis', '0.1.0-dev');
23 var apisPackageGenerator = new ApisPackageGenerator( 30 var apisPackageGenerator = new ApisPackageGenerator(
24 descriptions, config, outputDirectory); 31 descriptions, config, outputDirectory);
25 32
26 return apisPackageGenerator.generateApiPackage(); 33 return apisPackageGenerator.generateApiPackage();
27 } 34 }
28 35
29 List<GenerateResult> generateAllLibraries(String inputDirectory, 36 List<GenerateResult> generateAllLibraries(String inputDirectory,
30 String outputDirectory) { 37 String outputDirectory) {
31 var apiDescriptions = new Directory(inputDirectory).listSync() 38 var apiDescriptions = new Directory(inputDirectory).listSync()
32 .where((fse) => fse is File && fse.path.endsWith('.json')) 39 .where((fse) => fse is File && fse.path.endsWith('.json'))
33 .map((File file) { 40 .map((File file) {
34 return new RestDescription.fromJson(JSON.decode(file.readAsStringSync())); 41 return new RestDescription.fromJson(JSON.decode(file.readAsStringSync()));
35 }).toList(); 42 }).toList();
36 return generateApiPackage(apiDescriptions, outputDirectory); 43 return generateApiPackage(apiDescriptions, outputDirectory);
37 } 44 }
38 45
39 Future<List<GenerateResult>> downloadDiscoveryDocuments(String outputDir) { 46 Future<List<GenerateResult>> downloadDiscoveryDocuments(
47 String outputDir, {List<String> ids}) {
40 var apiDescriptions = <RestDescription>[]; 48 var apiDescriptions = <RestDescription>[];
41 49
42 return _discoveryClient.apis.list().then((DirectoryList list) { 50 return _discoveryClient.apis.list().then((DirectoryList list) {
43 var futures = <Future>[]; 51 var futures = <Future>[];
44 for (var item in list.items) { 52 for (var item in list.items) {
45 futures.add(_discoveryClient.apis.getRest(item.name, item.version) 53 if (ids == null || ids.contains(item.id)) {
46 .then((doc) { 54 futures.add(_discoveryClient.apis.getRest(item.name, item.version)
47 apiDescriptions.add(doc); 55 .then((doc) {
48 })); 56 apiDescriptions.add(doc);
57 }));
58 }
49 } 59 }
50 return Future.wait(futures); 60 return Future.wait(futures);
51 }).then((_) { 61 }).then((_) {
52 var directory = new Directory(outputDir); 62 var directory = new Directory(outputDir);
53 if (directory.existsSync()) { 63 if (directory.existsSync()) {
54 print('Deleting directory $outputDir.'); 64 print('Deleting directory $outputDir.');
55 directory.deleteSync(recursive: true); 65 directory.deleteSync(recursive: true);
56 } 66 }
57 directory.createSync(); 67 directory.createSync(recursive: true);
58 68
59 for (var description in apiDescriptions) { 69 for (var description in apiDescriptions) {
60 var name = '$outputDir/${description.name}__${description.version}.json'; 70 var name = '$outputDir/${description.name}__${description.version}.json';
61 var file = new File(name); 71 var file = new File(name);
62 var encoder = new JsonEncoder.withIndent(' '); 72 var encoder = new JsonEncoder.withIndent(' ');
63 file.writeAsStringSync(encoder.convert(description.toJson())); 73 file.writeAsStringSync(encoder.convert(description.toJson()));
64 print('Written: $name'); 74 print('Written: $name');
65 } 75 }
66 }); 76 });
67 } 77 }
(...skipping 25 matching lines...) Expand all
93 => cleanName("${apiName}_${apiVersion}_api").toLowerCase(); 103 => cleanName("${apiName}_${apiVersion}_api").toLowerCase();
94 104
95 String toString() { 105 String toString() {
96 var flag = success ? '[SUCCESS]' : '[FAIL]'; 106 var flag = success ? '[SUCCESS]' : '[FAIL]';
97 var msg = message != null && !message.isEmpty ? ':\n => $message' : ''; 107 var msg = message != null && !message.isEmpty ? ':\n => $message' : '';
98 return '$flag $apiName $apiVersion @ $packagePath $msg'; 108 return '$flag $apiName $apiVersion @ $packagePath $msg';
99 } 109 }
100 } 110 }
101 111
102 final _discoveryClient = new Discovery(); 112 final _discoveryClient = new Discovery();
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698