1
- {% macro methodNeedsSecurityParameters(method ) %}
2
- {% if (method .type == " webAuth" or method .type == " location" ) and method .security | length > 0 %}{{ true }}{% else %}{{false }}{% endif %}
3
- {% endmacro %}
4
1
{% macro resultType(spec , method ) %}
5
2
{% if method .type == " webAuth" %}Bool{% elseif method .type == " location" %}ByteBuffer{% elseif not method .responseModel or method .responseModel == ' any' %}Any{% else %}{{spec .title | caseUcfirst }}Models.{{method .responseModel | caseUcfirst }}{% endif %}
6
3
{% endmacro %}
@@ -51,53 +48,11 @@ open class {{ service.name | caseUcfirst }}: Service {
51
48
onProgress: ((UploadProgress) -> Void)? = nil
52
49
{% endif %}
53
50
) async throws -> {{ _self.resultType (spec , method ) }} {
54
- {% if method .parameters .path %} var{% else %} let{% endif %} path: String = "{{ method .path }}"
55
- {% for parameter in method .parameters .path %}
56
- path = path.replacingOccurrences(
57
- of: "{{ ' {' }}{{ parameter .name | caseCamel }}{{ ' }' }}",
58
- with: {% if method .parameters .path %}{% if parameter .isGlobal %}self.{% endif %}{{ parameter .name | caseCamel | escapeKeyword }}{% else %}""{% endif %}
59
-
60
- )
61
- {% endfor %}
62
- {% if method .parameters .query or method .parameters .body or method .parameters .formData or _self.methodNeedsSecurityParameters (method ) %}
63
- {% if ' multipart/form-data' in method .consumes %}var{% else %}let{% endif %} params: [String: Any?] = [
64
- {% else %}
65
- let params: [String: Any?] = [:]
66
- {% endif %}
67
- {% for parameter in method .parameters .query | merge(method .parameters .body ) %}
68
- "{{ parameter .name }}": {% if parameter .isGlobal %}self.{% endif %}{{ parameter .name | caseCamel | escapeKeyword }}{% if not loop .last or _self.methodNeedsSecurityParameters (method ) %},{% endif %}
69
-
70
- {% endfor %}
71
- {% if _self.methodNeedsSecurityParameters (method ) %}
72
- {% for node in method .security %}
73
- {% for key ,header in node | keys %}
74
- "{{header | caseLower}}": client.config["{{header | caseLower}}"]{% if not loop .last %},{% endif %}
75
-
76
- {% endfor %}
77
- {% endfor %}
78
- {% endif %}
79
- {% if method .parameters .query or method .parameters .body or method .parameters .formData or _self.methodNeedsSecurityParameters (method ) %}
80
- ]
81
- {% endif %}
51
+ {{include (' swift/base/params.twig' )}}
82
52
{% if method .type == ' webAuth' %}
83
- let query = "?\(client.parametersToQueryString(params: params))"
84
- let url = URL(string: client.endPoint + path + query)!
85
- let callbackScheme = "appwrite-callback-\(client.config["project"] ?? "")"
86
- let group = DispatchGroup()
87
-
88
- group.enter()
89
- WebAuthComponent.authenticate(url: url, callbackScheme: callbackScheme) { result in
90
- group.leave()
91
- }
92
- group.wait()
93
-
94
- return true
53
+ {{include (' swift/base/requests/OAuth.twig' )}}
95
54
{% elseif method .type == ' location' %}
96
- return try await client.call(
97
- method: "{{ method .method | caseUpper }}",
98
- path: path,
99
- params: params
100
- )
55
+ {{include (' swift/base/requests/location.twig' )}}
101
56
{% else %}
102
57
{% if ' multipart/form-data' in method .consumes %}var{% else %}let{% endif %} headers: [String: String] = [
103
58
{{ method .headers | map((header , key ) => " \"#{key}\": \"#{header}\"" )| join (' ,\n' )| raw }}
@@ -112,33 +67,9 @@ open class {{ service.name | caseUcfirst }}: Service {
112
67
}
113
68
{% endif %}
114
69
{% if ' multipart/form-data' in method .consumes %}
115
- let idParamName: String? = {% if method .parameters .all | filter(p => p .isUploadID ) | length > 0 %}{% for parameter in method .parameters .all | filter(parameter => parameter .isUploadID ) %}"{{ parameter .name }}"{% endfor %}{% else %}nil{% endif %}
116
-
117
- {% for parameter in method .parameters .all %}
118
- {% if parameter .type == ' file' %}
119
- let paramName = "{{ parameter .name }}"
120
- {% endif %}
121
- {% endfor %}
122
- return try await client.chunkedUpload(
123
- path: path,
124
- headers: & headers,
125
- params: & params,
126
- paramName: paramName,
127
- idParamName: idParamName,
128
- {% if method .responseModel %}
129
- converter: converter,
130
- {% endif %}
131
- onProgress: onProgress
132
- )
70
+ {{include (' swift/base/requests/file.twig' )}}
133
71
{% else %}
134
- return try await client.call(
135
- method: "{{ method .method | caseUpper }}",
136
- path: path,
137
- headers: headers,
138
- params: params{% if method .responseModel %},
139
- converter: converter
140
- {% endif %}
141
- )
72
+ {{include (' swift/base/requests/api.twig' )}}
142
73
{% endif %}
143
74
{% endif %}
144
75
}
0 commit comments