mirror of
https://github.com/foss42/apidash.git
synced 2025-12-02 02:39:19 +08:00
Merge pull request #693 from badnikhil/resolve-issue-692
fixed swift Code (Tested)
This commit is contained in:
@@ -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;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user