Merge pull request #693 from badnikhil/resolve-issue-692

fixed swift Code (Tested)
This commit is contained in:
Ankit Mahato
2025-03-30 17:26:25 +05:30
committed by GitHub
2 changed files with 786 additions and 504 deletions

View File

@@ -37,14 +37,16 @@ let multipartFormData = try! MultipartFormData(boundary: boundary) {
''';
final String kTemplateJsonData = '''
let parameters = "{{jsonData}}"
let postData = parameters.data(using: .utf8)
let postData = """
{{jsonData}}
""".data(using: .utf8)
''';
final String kTemplateTextData = '''
let parameters = "{{textData}}"
let postData = parameters.data(using: .utf8)
let postData = """
{{textData}}
""".data(using: .utf8)
''';
@@ -61,15 +63,23 @@ request.addValue("{{value}}", forHTTPHeaderField: "{{header}}")
""";
final String kTemplateBody = """
final String kTemplateFormDataBody = """
request.httpBody = try! multipartFormData.encode()
""";
final String kTemplateJsonTextBody = """
request.httpBody = postData
""";
final String kTemplateEnd = """
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
defer { semaphore.signal() }
if let error = error {
print("Error: (error.localizedDescription)")
print("Error: \\(error.localizedDescription)")
return
}
guard let data = data else {
@@ -77,25 +87,26 @@ let task = URLSession.shared.dataTask(with: request) { data, response, error in
return
}
if let responseString = String(data: data, encoding: .utf8) {
print("Response: (responseString)")
print("Response: \\(responseString)")
}
}
task.resume()
semaphore.wait()
""";
String? getCode(HttpRequestModel requestModel) {
try {
String result = kTemplateStart;
if (requestModel.hasFormData) {
result += kTemplateFormDataImport;
}
var rec =
getValidRequestUri(requestModel.url, requestModel.enabledParams);
var rec = getValidRequestUri(requestModel.url, requestModel.enabledParams);
Uri? uri = rec.$1;
if (requestModel.hasFormData) {
result += kTemplateFormDataImport;
var formDataList = requestModel.formDataMapList.map((param) {
if (param['type'] == 'file') {
final filePath = param['value'] as String;
@@ -122,17 +133,19 @@ task.resume()
result += templateFormData.render({
"formData": formDataList,
});
} else if (requestModel.hasJsonData) {
}
// Handle JSON data
else if (requestModel.hasJsonData) {
var templateJsonData = jj.Template(kTemplateJsonData);
result += templateJsonData.render({
"jsonData":
requestModel.body!.replaceAll('"', '\\"').replaceAll('\n', '\\n'),
});
} else if (requestModel.hasTextData) {
"jsonData": requestModel.body!
});
}
// Handle text data
else if (requestModel.hasTextData) {
var templateTextData = jj.Template(kTemplateTextData);
result += templateTextData.render({
"textData":
requestModel.body!.replaceAll('"', '\\"').replaceAll('\n', '\\n'),
"textData": requestModel.body!
});
}
@@ -144,19 +157,21 @@ task.resume()
var headers = requestModel.enabledHeadersMap;
if (requestModel.hasFormData) {
headers.putIfAbsent("Content-Type",
() => "multipart/form-data; boundary=(boundary.stringValue)");
} else if (requestModel.hasJsonData || requestModel.hasTextData) {
headers.putIfAbsent(
kHeaderContentType, () => requestModel.bodyContentType.header);
}
headers['Content-Type'] =
"multipart/form-data; boundary=\\(boundary.stringValue)";
} else if(requestModel.hasJsonData||requestModel.hasTextData){
headers['Content-Type'] = 'application/json';
}
if (headers.isNotEmpty) {
var templateHeader = jj.Template(kTemplateHeaders);
result += templateHeader.render({"headers": headers});
}
if (requestModel.hasFormData || requestModel.hasBody) {
result += kTemplateBody;
if (requestModel.hasFormData) {
result += kTemplateFormDataBody;
} else if (requestModel.hasJsonData || requestModel.hasTextData) {
result += kTemplateJsonTextBody;
}
result += kTemplateEnd;

View File

File diff suppressed because it is too large Load Diff