Untitled
unknown
plain_text
2 years ago
1.5 kB
17
Indexable
import 'BaseApiServices.dart';
import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;
import 'app_exception.dart';
class NetworkApiService extends BaseApiServices {
@override
Future authApiResponse(String url, dynamic data) async {
dynamic responseJson;
var headers = {'Content-Type': 'application/x-www-form-urlencoded'};
var request = http.Request('POST', Uri.parse(url));
request.bodyFields = {
'params': json.encode(data),
};
request.headers.addAll(headers);
try {
final response = await http
.put(Uri.parse(url), body: data, headers: headers)
.timeout(const Duration(seconds: 30));
responseJson = returnResponse(response);
} on SocketException {
//socket Exception is not internet
throw FetchDataException("No Internet Connection");
}
return responseJson;
}
dynamic returnResponse(http.Response response) {
switch (response.statusCode) {
case 200:
case 201:
dynamic responseJson = jsonDecode(response.body);
return responseJson;
case 400:
Map errorMessage = jsonDecode(response.body);
throw BadRequestException(errorMessage["message"].toString());
case 500:
case 404:
throw UnAuthorisedException(response.body.toString());
default:
throw FetchDataException(
"Error occurred while communicating with server with status code ${response.statusCode}");
}
}
}
Editor is loading...