requestNkBase<T> method
Make a request using the baseUrl
that
was initialized at instantiation.
This request must be made using the Nik Architecture API, Otherwise use request().
Implementation
Future<NkResponse<T>?> requestNkBase<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) {
NkResponse<T> response = NkResponse<T>();
response =
nkResponseFromJson(httpResponse.body, requestData.fromJson);
response.httpResponse = httpResponse;
_validate(response);
return response;
} else {
NkResponse<T> response = NkResponse<T>();
response.success = false;
response.httpResponse = httpResponse;
return response;
}
case RequestType.post:
if (requestData.headers == null)
requestData.headers = {"Content-Type": requestData.contentType};
else
requestData.headers!
.addAll({"Content-Type": requestData.contentType});
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) {
NkResponse<T> response = NkResponse<T>();
response =
nkResponseFromJson(httpResponse.body, requestData.fromJson);
response.httpResponse = httpResponse;
_validate(response);
return response;
} else {
NkResponse<T> response = NkResponse<T>();
response.success = false;
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) {
NkResponse<T> response = NkResponse<T>();
response =
nkResponseFromJson(httpResponse.body, requestData.fromJson);
response.httpResponse = httpResponse;
_validate(response);
return response;
} else {
NkResponse<T> response = NkResponse<T>();
response.success = false;
response.httpResponse = httpResponse;
return response;
}
case RequestType.delete:
final httpResponse =
await http.delete(requestUri, headers: requestData.headers);
if (httpResponse.statusCode >= 200 &&
httpResponse.statusCode <= 226) {
NkResponse<T> response = NkResponse<T>();
response =
nkResponseFromJson(httpResponse.body, requestData.fromJson);
response.httpResponse = httpResponse;
_validate(response);
return response;
} else {
NkResponse<T> response = NkResponse<T>();
response.success = false;
response.httpResponse = httpResponse;
return response;
}
default:
return null;
}
} catch (e) {
var err = NkResponse<T>();
err.success = false;
err.exception = e;
return err;
}
}