display api stuff in frontend
This commit is contained in:
4
frontend/lib/api/API.dart
Normal file
4
frontend/lib/api/API.dart
Normal file
@@ -0,0 +1,4 @@
|
||||
import 'api_client.dart';
|
||||
|
||||
/// use this variable to access global api
|
||||
final ApiClient API = ApiClient();
|
16
frontend/lib/api/api_client.dart
Normal file
16
frontend/lib/api/api_client.dart
Normal file
@@ -0,0 +1,16 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
class ApiClient {
|
||||
static const String _apiBase = kDebugMode ? "http://localhost:8081" : "";
|
||||
final Dio _dio = Dio(BaseOptions(baseUrl: _apiBase));
|
||||
|
||||
String? token;
|
||||
DateTime? tokenValidUntil;
|
||||
|
||||
ApiClient();
|
||||
|
||||
Dio getRawClient() {
|
||||
return _dio;
|
||||
}
|
||||
}
|
13
frontend/lib/api/builds.dart
Normal file
13
frontend/lib/api/builds.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import '../core/models/build.dart';
|
||||
import 'api_client.dart';
|
||||
|
||||
extension BuildsAPI on ApiClient {
|
||||
Future<List<Build>> listAllBuilds() async {
|
||||
final resp = await getRawClient().get("/builds");
|
||||
|
||||
final responseObject = resp.data as List;
|
||||
final List<Build> packages =
|
||||
responseObject.map((e) => Build.fromJson(e)).toList(growable: false);
|
||||
return packages;
|
||||
}
|
||||
}
|
22
frontend/lib/api/packages.dart
Normal file
22
frontend/lib/api/packages.dart
Normal file
@@ -0,0 +1,22 @@
|
||||
import '../core/models/package.dart';
|
||||
import 'api_client.dart';
|
||||
|
||||
extension PackagesAPI on ApiClient {
|
||||
Future<List<Package>> listPackages() async {
|
||||
final resp = await getRawClient().get("/packages/list");
|
||||
print(resp.data);
|
||||
|
||||
// todo error handling
|
||||
|
||||
final responseObject = resp.data as List;
|
||||
final List<Package> packages =
|
||||
responseObject.map((e) => Package.fromJson(e)).toList(growable: false);
|
||||
return packages;
|
||||
}
|
||||
|
||||
Future<void> addPackage({bool force = false, required String name}) async {
|
||||
final resp = await getRawClient().post("/packages/add", data: {'force_build': force, 'name': name});
|
||||
print(resp.data);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user