Skip to content

Commit d0383b6

Browse files
committed
tests and fixed done.
1 parent 7aa489d commit d0383b6

File tree

2 files changed

+795
-515
lines changed

2 files changed

+795
-515
lines changed

lib/codegen/swift/urlsession.dart

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,16 @@ let multipartFormData = try! MultipartFormData(boundary: boundary) {
3737
''';
3838

3939
final String kTemplateJsonData = '''
40-
let parameters = "{{jsonData}}"
41-
let postData = parameters.data(using: .utf8)
40+
let postData = """
41+
{{jsonData}}
42+
""".data(using: .utf8)
4243
4344
''';
4445

4546
final String kTemplateTextData = '''
46-
let parameters = "{{textData}}"
47-
let postData = parameters.data(using: .utf8)
47+
let postData = """
48+
{{textData}}
49+
""".data(using: .utf8)
4850
4951
''';
5052

@@ -61,8 +63,12 @@ request.addValue("{{value}}", forHTTPHeaderField: "{{header}}")
6163
6264
""";
6365

64-
final String kTemplateBody = """
66+
final String kTemplateFormDataBody = """
6567
request.httpBody = try! multipartFormData.encode()
68+
""";
69+
70+
final String kTemplateJsonTextBody = """
71+
request.httpBody = postData
6672
6773
""";
6874

@@ -95,20 +101,17 @@ semaphore.wait()
95101
try {
96102
String result = kTemplateStart;
97103

98-
if (requestModel.hasFormData) {
99-
result += kTemplateFormDataImport;
100-
}
101-
102-
var rec =
103-
getValidRequestUri(requestModel.url, requestModel.enabledParams);
104+
var rec = getValidRequestUri(requestModel.url, requestModel.enabledParams);
104105
Uri? uri = rec.$1;
105106

106107
if (requestModel.hasFormData) {
108+
result += kTemplateFormDataImport;
109+
107110
var formDataList = requestModel.formDataMapList.map((param) {
108111
if (param['type'] == 'file') {
109112
final filePath = param['value'] as String;
110113
final fileName = path.basename(filePath);
111-
final fileExtension =
114+
final fileExtension =
112115
path.extension(fileName).toLowerCase().replaceFirst('.', '');
113116
return {
114117
'type': 'file',
@@ -130,17 +133,19 @@ semaphore.wait()
130133
result += templateFormData.render({
131134
"formData": formDataList,
132135
});
133-
} else if (requestModel.hasJsonData) {
136+
}
137+
// Handle JSON data
138+
else if (requestModel.hasJsonData) {
134139
var templateJsonData = jj.Template(kTemplateJsonData);
135140
result += templateJsonData.render({
136-
"jsonData":
137-
requestModel.body!.replaceAll('"', '\\"').replaceAll('\n', '\\n'),
138-
});
139-
} else if (requestModel.hasTextData) {
141+
"jsonData": requestModel.body!
142+
});
143+
}
144+
// Handle text data
145+
else if (requestModel.hasTextData) {
140146
var templateTextData = jj.Template(kTemplateTextData);
141147
result += templateTextData.render({
142-
"textData":
143-
requestModel.body!.replaceAll('"', '\\"').replaceAll('\n', '\\n'),
148+
"textData": requestModel.body!
144149
});
145150
}
146151

@@ -152,19 +157,21 @@ semaphore.wait()
152157

153158
var headers = requestModel.enabledHeadersMap;
154159
if (requestModel.hasFormData) {
155-
headers.putIfAbsent("Content-Type",
156-
() => "multipart/form-data; boundary=\\(boundary.stringValue)");
157-
} else if (requestModel.hasJsonData || requestModel.hasTextData) {
158-
headers.putIfAbsent(
159-
kHeaderContentType, () => requestModel.bodyContentType.header);
160-
}
160+
headers['Content-Type'] =
161+
"multipart/form-data; boundary=\\(boundary.stringValue)";
162+
} else if(requestModel.hasJsonData||requestModel.hasTextData){
163+
headers['Content-Type'] = 'application/json';
164+
}
165+
161166
if (headers.isNotEmpty) {
162167
var templateHeader = jj.Template(kTemplateHeaders);
163168
result += templateHeader.render({"headers": headers});
164169
}
165170

166-
if (requestModel.hasFormData || requestModel.hasBody) {
167-
result += kTemplateBody;
171+
if (requestModel.hasFormData) {
172+
result += kTemplateFormDataBody;
173+
} else if (requestModel.hasJsonData || requestModel.hasTextData) {
174+
result += kTemplateJsonTextBody;
168175
}
169176

170177
result += kTemplateEnd;

0 commit comments

Comments
 (0)