request<T> method
Make a request using the baseUrl
that
was initialized at instantiation.
Implementation
Future<NkHttpResponse<T>?> request<T>(RequestData<T> requestData) async {
try {
var requestUri = Uri();
if (requestData.queryParams != null)
requestUri =
_getRequestUri(requestData.route!, requestData.queryParams);
else
requestUri = _getRequestUri(requestData.route!);
switch (requestData.type) {
case RequestType.get:
final httpResponse =
await http.get(requestUri, headers: requestData.headers);
if (httpResponse.statusCode >= 200 &&
httpResponse.statusCode <= 226) {
NkHttpResponse<T> response = NkHttpResponse<T>();
response.data = requestData.fromJson(httpResponse.body);
response.httpResponse = httpResponse;
return response;
} else {
NkHttpResponse<T> response = NkHttpResponse<T>();
response.httpResponse = httpResponse;
return response;
}
case RequestType.post:
final httpResponse = await http.post(requestUri,
headers: requestData.headers,
body: requestData.postPrefs!.body == null
? jsonEncode("")
: jsonEncode(requestData.postPrefs!.body),
encoding: requestData.postPrefs!.encoding);
if (httpResponse.statusCode >= 200 &&
httpResponse.statusCode <= 226) {
NkHttpResponse<T> response = NkHttpResponse<T>();
response.data = requestData.fromJson(httpResponse.body);
response.httpResponse = httpResponse;
return response;
} else {
NkHttpResponse<T> response = NkHttpResponse<T>();
response.httpResponse = httpResponse;
return response;
}
case RequestType.put:
final httpResponse = await http.put(requestUri,
headers: requestData.headers,
body: requestData.postPrefs!.body == null
? ""
: requestData.postPrefs!.body,
encoding: requestData.postPrefs!.encoding);
if (httpResponse.statusCode >= 200 &&
httpResponse.statusCode <= 226) {
NkHttpResponse<T> response = NkHttpResponse<T>();
response.data = requestData.fromJson(httpResponse.body);
response.httpResponse = httpResponse;
return response;
} else {
NkHttpResponse<T> response = NkHttpResponse<T>();
response.httpResponse = httpResponse;
return response;
}
case RequestType.delete:
final httpResponse =
await http.delete(requestUri, headers: requestData.headers);
if (httpResponse.statusCode >= 200 &&
httpResponse.statusCode <= 226) {
NkHttpResponse<T> response = NkHttpResponse<T>();
response.data = requestData.fromJson(httpResponse.body);
response.httpResponse = httpResponse;
return response;
} else {
NkHttpResponse<T> response = NkHttpResponse<T>();
response.httpResponse = httpResponse;
return response;
}
default:
return null;
}
} catch (e) {
var err = NkHttpResponse<T>();
err.exception = e;
return err;
}
}