Skip to content

Commit a1f156c

Browse files
author
Fredrik Gustafsson
committed
Updated 'api.mustache' to generate asynchronous methods aswell
1 parent 59ca8bd commit a1f156c

File tree

1 file changed

+44
-1
lines changed
  • modules/swagger-codegen/src/main/resources/csharp

1 file changed

+44
-1
lines changed

modules/swagger-codegen/src/main/resources/csharp/api.mustache

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Threading.Tasks;
34
using RestSharp;
45
using {{invokerPackage}};
56
using {{modelPackage}};
@@ -103,7 +104,49 @@ namespace {{package}} {
103104
{{#returnType}}return ({{{returnType}}}) apiClient.Deserialize(response.Content, typeof({{{returnType}}}));{{/returnType}}{{^returnType}}
104105
return;{{/returnType}}
105106
}
107+
108+
/// <summary>
109+
/// {{summary}} {{notes}}
110+
/// </summary>
111+
{{#allParams}} /// <param name="{{paramName}}">{{description}}</param>
112+
{{/allParams}}
113+
/// <returns>{{#returnType}}{{{returnType}}}{{/returnType}}</returns>
114+
public async {{#returnType}}Task<{{{returnType}}}>{{/returnType}}{{^returnType}}Task{{/returnType}} {{nickname}}Async ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
115+
116+
var _request = new RestRequest("{{path}}", Method.{{httpMethod}});
117+
118+
{{#allParams}}{{#required}}
119+
// verify the required parameter '{{paramName}}' is set
120+
if ({{paramName}} == null) throw new ApiException(400, "Missing required parameter '{{paramName}}' when calling {{nickname}}");
121+
{{/required}}{{/allParams}}
122+
123+
// add default header, if any
124+
foreach(KeyValuePair<string, string> defaultHeader in ApiInvoker.GetDefaultHeader())
125+
{
126+
_request.AddHeader(defaultHeader.Key, defaultHeader.Value);
127+
}
128+
129+
_request.AddUrlSegment("format", "json"); // set format to json by default
130+
{{#pathParams}}_request.AddUrlSegment("{{baseName}}", ApiInvoker.ParameterToString({{{paramName}}})); // path (url segment) parameter
131+
{{/pathParams}}
132+
{{#queryParams}} if ({{paramName}} != null) _request.AddParameter("{{baseName}}", ApiInvoker.ParameterToString({{paramName}})); // query parameter
133+
{{/queryParams}}
134+
{{#headerParams}} if ({{paramName}} != null) _request.AddHeader("{{baseName}}", ApiInvoker.ParameterToString({{paramName}})); // header parameter
135+
{{/headerParams}}
136+
{{#formParams}}if ({{paramName}} != null) {{#isFile}}_request.AddFile("{{baseName}}", {{paramName}});{{/isFile}}{{^isFile}}_request.AddParameter("{{baseName}}", ApiInvoker.ParameterToString({{paramName}})); // form parameter{{/isFile}}
137+
{{/formParams}}
138+
{{#bodyParam}}_request.AddParameter("application/json", ApiInvoker.Serialize({{paramName}}), ParameterType.RequestBody); // http body (model) parameter
139+
{{/bodyParam}}
140+
141+
// make the HTTP request
142+
IRestResponse response = await restClient.ExecuteTaskAsync(_request);
143+
if (((int)response.StatusCode) >= 400) {
144+
throw new ApiException ((int)response.StatusCode, "Error calling {{nickname}}: " + response.Content);
145+
}
146+
{{#returnType}}return ({{{returnType}}}) ApiInvoker.Deserialize(response.Content, typeof({{{returnType}}}));{{/returnType}}{{^returnType}}
147+
return;{{/returnType}}
148+
}
106149
{{/operation}}
107-
}
150+
}
108151
{{/operations}}
109152
}

0 commit comments

Comments
 (0)