add apibuilder widget to make api callsmore straightforward and data updateable from everywhere through providers
This commit is contained in:
@ -2,7 +2,8 @@ import 'package:dio/dio.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
class ApiClient {
|
||||
static const String _apiBase = !kDebugMode ? "http://localhost:8081/api" : "api";
|
||||
static const String _apiBase =
|
||||
kDebugMode ? "http://localhost:8081/api" : "api";
|
||||
final Dio _dio = Dio(BaseOptions(baseUrl: _apiBase));
|
||||
|
||||
String? token;
|
||||
|
@ -2,8 +2,17 @@ import '../models/build.dart';
|
||||
import 'api_client.dart';
|
||||
|
||||
extension BuildsAPI on ApiClient {
|
||||
Future<List<Build>> listAllBuilds() async {
|
||||
final resp = await getRawClient().get("/builds");
|
||||
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);
|
||||
|
||||
final responseObject = resp.data as List;
|
||||
final List<Build> packages =
|
||||
|
@ -11,9 +11,21 @@ extension PackagesAPI on ApiClient {
|
||||
return packages;
|
||||
}
|
||||
|
||||
Future<Package> getPackage(int id) async {
|
||||
final resp = await getRawClient().get("/package/$id");
|
||||
|
||||
final package = Package.fromJson(resp.data);
|
||||
return package;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
Future<bool> deletePackage(int id) async {
|
||||
final resp = await getRawClient().post("/package/delete/$id");
|
||||
return resp.statusCode == 200;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user