// Copyright 2021 The Flutter team. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:linting_tool/model/rule.dart'; import 'package:yaml/yaml.dart'; class APIProvider { final _baseURL = 'https://dart-lang.github.io/linter'; final http.Client httpClient; APIProvider(this.httpClient); Future> getRulesList() async { final response = await httpClient.get(Uri.parse('$_baseURL//lints/machine/rules.json')); if (response.statusCode == 200) { List rulesList = []; final data = json.decode(response.body) as List; for (var item in data) { rulesList.add(Rule.fromJson(item as Map)); } return rulesList; } else { throw Exception('Failed to load rules'); } } Future getTemplateFile() async { final response = await httpClient.get(Uri.parse( 'https://raw.githubusercontent.com/flutter/flutter/master/packages/flutter_tools/templates/app_shared/analysis_options.yaml.tmpl')); if (response.statusCode == 200) { return loadYaml(response.body) as YamlMap; } else { throw Exception('Failed to load template file'); } } }