aurcache/frontend/lib/api/builds.dart

42 lines
1.1 KiB
Dart
Raw Normal View History

import '../models/build.dart';
2023-12-29 17:13:51 +00:00
import 'api_client.dart';
extension BuildsAPI on ApiClient {
Future<List<Build>> listAllBuilds({int? pkgID, int? limit}) async {
String uri = "/builds?";
if (pkgID != null) {
uri += "pkgid=$pkgID";
}
if (limit != null) {
uri += "limit=$limit";
}
final resp = await getRawClient().get(uri);
2023-12-29 17:13:51 +00:00
final responseObject = resp.data as List;
final List<Build> packages =
responseObject.map((e) => Build.fromJson(e)).toList(growable: false);
2023-12-29 17:13:51 +00:00
return packages;
}
2023-12-30 15:46:13 +00:00
Future<Build> getBuild(int id) async {
final resp = await getRawClient().get("/build/${id}");
2023-12-30 15:46:13 +00:00
return Build.fromJson(resp.data);
}
Future<bool> deleteBuild(int id) async {
final resp = await getRawClient().delete("/build/${id}");
return resp.statusCode == 400;
}
2023-12-30 15:46:13 +00:00
Future<String> getOutput({int? line, required int buildID}) async {
String uri = "/build/$buildID/output";
2023-12-30 15:46:13 +00:00
if (line != null) {
uri += "?startline=$line";
2023-12-30 15:46:13 +00:00
}
final resp = await getRawClient().get(uri);
return resp.data.toString();
}
2023-12-29 17:13:51 +00:00
}