| // Copyright 2020 The Flutter Authors. 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:async'; |
| |
| import 'package:cocoon_service/src/request_handling/request_handler.dart'; |
| import 'package:github/github.dart'; |
| |
| import '../request_handling/body.dart'; |
| import '../service/branch_service.dart'; |
| import '../service/config.dart'; |
| import '../service/github_service.dart'; |
| |
| /// Return a list of release branch information. |
| /// |
| /// GET: /api/public/get-release-branches |
| /// |
| /// Response: Status 200 OK |
| ///[ |
| /// { |
| /// "branch":"flutter-2.13-candidate.0", |
| /// "name":"stable" |
| /// }, |
| /// { |
| /// "branch":"flutter-3.2-candidate.5", |
| /// "name":"beta" |
| /// }, |
| /// { |
| /// "branch":"flutter-3.4-candidate.5", |
| /// "name":"dev" |
| /// } |
| ///] |
| |
| class GetReleaseBranches extends RequestHandler<Body> { |
| GetReleaseBranches({required super.config, required this.branchService}); |
| |
| final BranchService branchService; |
| |
| @override |
| Future<Body> get() async { |
| final GitHub github = await config.createGitHubClient(slug: Config.flutterSlug); |
| final GithubService githubService = GithubService(github); |
| final List<Map<String, String>> branchNames = |
| await branchService.getReleaseBranches(githubService: githubService, slug: Config.flutterSlug); |
| return Body.forJson(branchNames); |
| } |
| } |