send static method
Implementation
static send(payload, HttpRequest request) {
if (payload is WebSocket) {
return;
}
if (payload is DoxResponse) {
return payload.write(request);
}
HttpResponse res = request.response;
if (DoxServer().exceptionHandler != null) {
var exceptionHandlerResponse =
DoxServer().exceptionHandler?.handle(payload, res);
if (exceptionHandlerResponse != null) {
payload = exceptionHandlerResponse;
}
}
String responseData;
if (payload is Map) {
responseData = jsonEncode(payload as Map<String, dynamic>);
res.headers.contentType = ContentType.json;
} else if (_hasMethod(() => payload.toJson)) {
responseData = (payload).toJson();
res.headers.contentType = ContentType.json;
} else if (payload is List) {
var data = (payload).map((e) {
if (_hasMethod(() => e.toMap)) {
return e.toMap();
}
return e;
}).toList();
res.headers.contentType = ContentType.json;
responseData = jsonEncode(data);
} else {
responseData = payload.toString();
}
res.write(responseData);
print(
"\x1B[34m[${res.statusCode}]\x1B[0m \x1B[32m${request.method} ${request.uri.path}\x1B[0m");
res.close();
}