temp changes

merge-requests/19/head
Sikander Saleem 2 years ago
parent fe468aa254
commit 04c1624f18

@ -161,6 +161,35 @@ class ApiClient {
}
}
Future<U> getJsonForObject<T, U>(FactoryConstructor<U> factoryConstructor, String url,
{String? token, Map<String, dynamic>? queryParameters, Map<String, String>? headers, int retryTimes = 0, bool isFormData = true}) async {
var defaultHeaders = {'Accept': 'application/json'};
if (headers != null && headers.isNotEmpty) {
defaultHeaders.addAll(headers);
}
if (!kReleaseMode) {
debugPrint("Url:$url");
}
var response = await getJsonForResponse(url, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes);
try {
var jsonData = jsonDecode(response.body.replaceAll(r"\'", "'"));
if (jsonData != null) {
debugPrint(jsonData.runtimeType.toString());
return factoryConstructor(jsonData);
} else {
APIError? apiError;
apiError = APIError(response.statusCode, jsonData[0]);
throw APIException(APIException.BAD_REQUEST, error: apiError);
}
} catch (ex) {
if (ex is APIException) {
rethrow;
} else {
throw APIException(APIException.BAD_RESPONSE_FORMAT, arguments: ex);
}
}
}
Future<Response> getJsonForResponse<T>(String url, {String? token, Map<String, dynamic>? queryParameters, Map<String, String>? headers, int retryTimes = 0}) async {
int currentRetryTime = retryTimes;
if (headers == null) {
@ -206,6 +235,12 @@ class ApiClient {
var queryString = Uri(queryParameters: queryParameters).query;
url = '$url?$queryString';
}
if (!kReleaseMode) {
debugPrint("Url:$url");
debugPrint("queryParameters:$queryParameters");
debugPrint("headers:$defaultHeaders");
}
var response = await _get(Uri.parse(url), headers: defaultHeaders).timeout(const Duration(seconds: 60));
if (response.statusCode >= 200 && response.statusCode < 300) {

@ -13,6 +13,8 @@ class GasRefillApiClient {
factory GasRefillApiClient() => _instance;
// todo @majd there is a method postJsonForObject, use this, rather then postJsonForResponse
Future<List<GasRefillModel>> getRequestPages({required List items, required int pageItemNumber}) async {
final response = await ApiClient().getJsonForResponse("${URLs.host1}${URLs.getGasRefill}", //body
headers: {

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/user_provider.dart';
import '../../../controllers/providers/api/devices_provider.dart';
import '../../../models/device/device.dart';

Loading…
Cancel
Save