commit from livecd
This commit is contained in:
@@ -1,15 +1,32 @@
|
||||
import 'dart:convert';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:mileograph_flutter/services/authservice.dart';
|
||||
|
||||
typedef TokenProvider = String? Function();
|
||||
|
||||
class ApiService {
|
||||
final String baseUrl;
|
||||
TokenProvider? _getToken;
|
||||
|
||||
ApiService({required this.baseUrl});
|
||||
|
||||
void setTokenProvider(TokenProvider provider) {
|
||||
_getToken = provider;
|
||||
}
|
||||
|
||||
Map<String, String> _buildHeaders(Map<String, String>? extra) {
|
||||
final token = _getToken?.call();
|
||||
final headers = {'accept': 'application/json', ...?extra};
|
||||
if (token != null && token.isNotEmpty) {
|
||||
headers['Authorization'] = 'Bearer $token';
|
||||
}
|
||||
return headers;
|
||||
}
|
||||
|
||||
Future<dynamic> get(String endpoint, {Map<String, String>? headers}) async {
|
||||
final response = await http.get(
|
||||
Uri.parse('$baseUrl$endpoint'),
|
||||
headers: headers,
|
||||
headers: _buildHeaders(headers),
|
||||
);
|
||||
return _processResponse(response);
|
||||
}
|
||||
@@ -21,7 +38,7 @@ class ApiService {
|
||||
}) async {
|
||||
final response = await http.post(
|
||||
Uri.parse('$baseUrl$endpoint'),
|
||||
headers: _jsonHeaders(headers),
|
||||
headers: _buildHeaders(_jsonHeaders(headers)),
|
||||
body: jsonEncode(data),
|
||||
);
|
||||
return _processResponse(response);
|
||||
@@ -30,10 +47,10 @@ class ApiService {
|
||||
Future<dynamic> postForm(String endpoint, Map<String, String> data) async {
|
||||
final response = await http.post(
|
||||
Uri.parse('$baseUrl$endpoint'),
|
||||
headers: {
|
||||
headers: _buildHeaders({
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'accept': 'application/json',
|
||||
},
|
||||
}),
|
||||
body: data, // http package handles form-encoding for Map<String, String>
|
||||
);
|
||||
return _processResponse(response);
|
||||
@@ -46,7 +63,7 @@ class ApiService {
|
||||
}) async {
|
||||
final response = await http.put(
|
||||
Uri.parse('$baseUrl$endpoint'),
|
||||
headers: _jsonHeaders(headers),
|
||||
headers: _buildHeaders(_jsonHeaders(headers)),
|
||||
body: jsonEncode(data),
|
||||
);
|
||||
return _processResponse(response);
|
||||
@@ -58,7 +75,7 @@ class ApiService {
|
||||
}) async {
|
||||
final response = await http.delete(
|
||||
Uri.parse('$baseUrl$endpoint'),
|
||||
headers: headers,
|
||||
headers: _buildHeaders(headers),
|
||||
);
|
||||
return _processResponse(response);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user