Update net_http.dart

This commit is contained in:
Ankit Mahato
2024-04-06 19:43:43 +05:30
parent 48fedd5627
commit f10ae7a403

View File

@ -1,7 +1,7 @@
import 'package:jinja/jinja.dart' as jj; import 'package:jinja/jinja.dart' as jj;
import 'package:apidash/utils/utils.dart' import 'package:apidash/utils/utils.dart' show getValidRequestUri;
show requestModelToHARJsonRequest;
import 'package:apidash/models/models.dart' show RequestModel; import 'package:apidash/models/models.dart' show RequestModel;
import '../../extensions/extensions.dart';
import 'package:apidash/consts.dart'; import 'package:apidash/consts.dart';
class RubyNetHttpCodeGen { class RubyNetHttpCodeGen {
@ -15,9 +15,8 @@ request = Net::HTTP::{{method}}.new(url)
"""; """;
String kTemplateHeader = """ String kTemplateHeader = """
{% for key, value in headers %}
{% for header in headers %} request["{{key}}"] = "{{value}}"{% endfor %}
{% if 'multipart' not in header['value'] %}request["{{ header['name'] }}"] = "{{ header['value'] }}"{% endif %}{% endfor %}
"""; """;
String kTemplateBody = """ String kTemplateBody = """
@ -35,7 +34,7 @@ HEREDOC
response = https.request(request) response = https.request(request)
puts "Response Code: #{response.code}" puts "Response Code: #{response.code}"
{% if method != "HEAD" %}puts "Response Body: #{response.body}"{% else %}puts "Response Body: #{response.to_hash}"{% endif %} {% if method != "head" %}puts "Response Body: #{response.body}"{% else %}puts "Response Body: #{response.to_hash}"{% endif %}
"""; """;
@ -43,18 +42,33 @@ puts "Response Code: #{response.code}"
try { try {
String result = ""; String result = "";
var harJson = var rec = getValidRequestUri(
requestModelToHARJsonRequest(requestModel, useEnabled: true); requestModel.url,
requestModel.enabledRequestParams,
);
Uri? uri = rec.$1;
if (uri == null) {
return "";
}
var templateStart = jj.Template(kTemplateStart); var templateStart = jj.Template(kTemplateStart);
result += templateStart.render({ result += templateStart.render({
"url": harJson["url"], "url": uri.query.isEmpty
"method": harJson["method"].toString().substring(0, 1).toUpperCase() + ? uri.toString().replaceFirst("?", "", uri.toString().length - 1)
harJson["method"].toString().substring(1).toLowerCase(), : uri,
"check": harJson["url"].toString().substring(0, 5), "method": requestModel.method.name.capitalize(),
"check": uri.scheme,
}); });
var headers = harJson["headers"]; var headers = requestModel.enabledHeadersMap;
if (!requestModel.hasContentTypeHeader &&
(requestModel.hasJsonData || requestModel.hasTextData)) {
headers[kHeaderContentType] =
requestModel.requestBodyContentType.header;
}
if (headers.isNotEmpty) { if (headers.isNotEmpty) {
var templateHeader = jj.Template(kTemplateHeader); var templateHeader = jj.Template(kTemplateHeader);
result += templateHeader.render({ result += templateHeader.render({
@ -74,7 +88,7 @@ puts "Response Code: #{response.code}"
result += "form_data = ["; result += "form_data = [";
var templateMultiPartBody = jj.Template(kMultiPartBodyTemplate); var templateMultiPartBody = jj.Template(kMultiPartBodyTemplate);
int length = requestModel.formDataMapList.length; int length = requestModel.formDataMapList.length;
for (var element in requestModel.formDataMapList) { for (var element in requestModel.formDataMapList) {
result += "["; result += "[";
result += templateMultiPartBody.render({ result += templateMultiPartBody.render({
@ -89,13 +103,13 @@ puts "Response Code: #{response.code}"
result += "],"; result += "],";
} }
} }
// result.substring(0,result.length - 1);
result += "]\n"; result += "]\n";
result += "request.set_form form_data, 'multipart/form-data'"; result +=
"request.set_form form_data, '${ContentType.formdata.header}'";
} }
result += result += jj.Template(kStringRequest)
jj.Template(kStringRequest).render({"method": harJson["method"]}); .render({"method": requestModel.method.name});
return result; return result;
} catch (e) { } catch (e) {
return null; return null;