Added download

This commit is contained in:
verboomp
2026-02-03 09:51:03 +01:00
parent f9ca668b39
commit 5f1d2d8610
25 changed files with 874 additions and 145 deletions

View File

@@ -11,18 +11,10 @@ import 'package:fotodocumentation/utils/url_utils.dart';
abstract class BaseController {
UrlUtils get uriUtils => DiContainer.get();
JwtTokenStorage get _jwtTokenStorage => DiContainer.get();
HttpClientUtils get httpClientUtils => DiContainer.get();
Future<Header> getAuthHeader() async {
final accessToken = await _jwtTokenStorage.getAccessToken();
if (accessToken != null && accessToken.isNotEmpty) {
// Use JWT Bearer token
return Header('Authorization', 'Bearer $accessToken');
} else {
return const Header("Accept-Language", "en-US");
}
Header getAuthHeader() {
return HeaderUtils().getAuthHeader();
}
Exception getServerError(Response response) {
@@ -32,7 +24,7 @@ abstract class BaseController {
Future<List<T>> runGetListWithAuth<T>(String uriStr, List<T> Function(dynamic) convert) async {
http.Client client = httpClientUtils.client;
try {
Header cred = await getAuthHeader();
Header cred = getAuthHeader();
Uri uri = Uri.parse(uriStr);
var response = await client.get(uri, headers: {cred.name: cred.value});
if (response.statusCode == 200) {
@@ -51,7 +43,7 @@ abstract class BaseController {
Future<T?> runGetWithAuth<T>(String uriStr, T Function(dynamic) convert) async {
http.Client client = httpClientUtils.client;
try {
Header cred = await getAuthHeader();
Header cred = getAuthHeader();
Uri uri = Uri.parse(uriStr);
var response = await client.get(uri, headers: {cred.name: cred.value});
if (response.statusCode == 200) {
@@ -67,9 +59,26 @@ abstract class BaseController {
}
}
Future<List<int>> runGetBytesWithAuth(String uriStr) async {
http.Client client = httpClientUtils.client;
try {
Header cred = getAuthHeader();
Uri uri = Uri.parse(uriStr);
var response = await client.get(uri, headers: {cred.name: cred.value});
if (response.statusCode == 200) {
return response.bodyBytes;
} else {
throw ServerError(response.statusCode);
}
} catch (e) {
logger.e("exception $e");
rethrow;
}
}
Future<bool> runDeleteWithAuth(String uriStr) async {
http.Client client = httpClientUtils.client;
Header cred = await getAuthHeader();
Header cred = getAuthHeader();
Uri uri = Uri.parse(uriStr);
var response = await client.delete(uri, headers: {cred.name: cred.value});
return response.statusCode == 200;
@@ -77,13 +86,28 @@ abstract class BaseController {
Future<bool> runPutWithAuth(String uriStr) async {
http.Client client = httpClientUtils.client;
Header cred = await getAuthHeader();
Header cred = getAuthHeader();
Uri uri = Uri.parse(uriStr);
var response = await client.put(uri, headers: {cred.name: cred.value});
return response.statusCode == 200;
}
}
class HeaderUtils{
JwtTokenStorage get _jwtTokenStorage => DiContainer.get();
Header getAuthHeader() {
final accessToken = _jwtTokenStorage.getAccessToken();
if (accessToken != null && accessToken.isNotEmpty) {
// Use JWT Bearer token
return Header('Authorization', 'Bearer $accessToken');
} else {
return const Header("Accept-Language", "en-US");
}
}
}
class Header {
final String name;
final String value;