diff --git a/lib/api.dart b/lib/api.dart index 877d2252..30e4423b 100644 --- a/lib/api.dart +++ b/lib/api.dart @@ -2,6 +2,8 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; +import 'package:image/image.dart'; + import 'package:path/path.dart' as path; import 'package:http/http.dart' as http; import 'package:shared_preferences/shared_preferences.dart'; @@ -26,15 +28,7 @@ class InvenTreeAPI { // Accessors for various url endpoints String get baseUrl { - return _BASE_URL; - } - - String get apiUrl { - return path.join(baseUrl, 'api'); - } - - String getApiUrl(String endpoint) { - String url = path.join(apiUrl, endpoint); + String url = _BASE_URL; if (!url.endsWith("/")) { url += "/"; @@ -43,6 +37,33 @@ class InvenTreeAPI { return url; } + String _makeUrl(String url) { + if (url.startsWith('/')) { + url = url.substring(1, url.length); + } + + url = url.replaceAll('//', '/'); + + return baseUrl + url; + } + + String get apiUrl { + return _makeUrl("/api/"); + } + + String get imageUrl { + return _makeUrl("/image/"); + } + + String makeApiUrl(String endpoint) { + + return apiUrl + endpoint; + } + + String makeUrl(String endpoint) { + return _makeUrl(endpoint); + } + String _username = ""; String _password = ""; @@ -189,7 +210,7 @@ class InvenTreeAPI { // Perform a PATCH request Future patch(String url, {Map body}) async { - var _url = getApiUrl(url); + var _url = makeApiUrl(url); var _headers = _defaultHeaders(); var _body = Map(); @@ -209,7 +230,7 @@ class InvenTreeAPI { // Perform a POST request Future post(String url, {Map body}) async { - var _url = getApiUrl(url); + var _url = makeApiUrl(url); var _headers = _defaultHeaders(); var _body = Map(); @@ -227,7 +248,7 @@ class InvenTreeAPI { // Perform a GET request Future get(String url, {Map params}) async { - var _url = getApiUrl(url); + var _url = makeApiUrl(url); var _headers = _defaultHeaders(); // If query parameters are supplied, form a query string