Page MenuHomePhorge

operation.cpp.mustache
No OneTemporary

Size
4 KB
Referenced Files
None
Subscribers
None

operation.cpp.mustache

{{>preamble}}
#include <algorithm>
#include "{{filenameBase}}.hpp"
namespace Kazv
{
{{#operations}}{{#operation}}
BaseJob::Query {{camelCaseOperationId}}Job::buildQuery(
{{#queryParams}}{{>joinedParamDef}}{{/queryParams}})
{
BaseJob::Query _q;
{{#queryParams}}
{{#required?}}
addToQuery(_q, "{{baseName}}"s, {{paramName}});
{{/required?}}
{{^required?}}
addToQueryIfNeeded(_q, "{{baseName}}"s, {{paramName}});
{{/required?}}
{{/queryParams}}
return _q;
}
BaseJob::Body {{camelCaseOperationId}}Job::buildBody({{#allParams}}{{>joinedParamDef}}{{/allParams}})
{
// ignore unused param
{{#allParams}}(void)({{paramName}});{{/allParams}}
{{#inlineBody}}{{^propertyMap}}{{^bodyParams?}}
return {{#consumesNonJson?}}BaseJob::BytesBody({{nameCamelCase}}){{/consumesNonJson?}}
{{^consumesNonJson?}}BaseJob::JsonBody({{nameCamelCase}}){{/consumesNonJson?}};
{{/bodyParams?}}{{/propertyMap}}{{/inlineBody}}
{{#bodyParams?}}
json _data
{{#inlineBody}}
({{paramName}})
{{/inlineBody}};
{{#propertyMap}}
addPropertyMapToJson(_data, {{nameCamelCase}});
{{/propertyMap}}
{{#bodyParams}}
{{#required?}}
_data["{{baseName}}"s] = {{paramName}};
{{/required?}}
{{^required?}}
addToJsonIfNeeded(_data, "{{baseName}}"s, {{paramName}});
{{/required?}}
{{/bodyParams}}
return BaseJob::JsonBody(_data);
{{/bodyParams?}}
{{^bodyParams?}}
{{^inlineBody}}
{{^propertyMap?}}
return BaseJob::EmptyBody{};
{{/propertyMap?}}
{{/inlineBody}}
{{/bodyParams?}}
};
{{#producesNonJson?}}
const immer::array<std::string> {{camelCaseOperationId}}Job::expectedContentTypes{ {{#produces}}"{{_}}"{{>cjoin}}{{/produces}} };
{{/producesNonJson?}}
{{camelCaseOperationId}}Job::{{camelCaseOperationId}}Job(
std::string serverUrl
{{^skipAuth}}, std::string _accessToken{{/skipAuth}}
{{#allParams?}},{{/allParams?}}
{{#allParams}}{{>joinedParamDef}}{{/allParams}})
: BaseJob(std::move(serverUrl),
std::string("{{basePathWithoutHost}}"){{#pathParts}} + {{_}}{{/pathParts}},
{{#_toupper}}{{httpMethod}}{{/_toupper}},
{{^skipAuth}}_accessToken{{/skipAuth}}{{#skipAuth}} {} {{/skipAuth}},
ReturnType::{{^producesNonJson?}}Json{{/producesNonJson?}}{{#producesNonJson?}}Byte{{/producesNonJson?}},
buildBody({{#allParams}}{{paramName}}{{>cjoin}}{{/allParams}})
, buildQuery({{#queryParams}}{{paramName}}{{>cjoin}}{{/queryParams}})
{{#headerParams?}}, std::map<std::string, std::string>{
{{#headerParams}}
{ "{{baseName}}"s, {{paramName}} },
{{/headerParams}}
}{{/headerParams?}})
{
}
{{#responses}}
bool {{camelCaseOperationId}}Job::success(Response r)
{
return BaseJob::success(r)
{{#producesNonJson?}}
&& contentTypeMatches(expectedContentTypes, r.header.get().at("Content-Type"))
{{/producesNonJson?}}
{{^producesNonJson?}}
&& isBodyJson(r.body)
{{#normalResponse?}}{{#properties}}{{#required?}}
&& jsonBody(r).get().contains("{{baseName}}"s)
{{/required?}}{{/properties}}{{/normalResponse?}}
{{/producesNonJson?}}
;
}
{{#normalResponse?}}
{{#properties}}
{{!there's nothing in #properties if the response is inline}}
{{>qualifiedMaybeOmittableType}} {{camelCaseOperationId}}Job::{{paramName}}(Response r)
{
if (jsonBody(r).get()
.contains("{{baseName}}"s)) {
return
jsonBody(r).get()["{{baseName}}"s]
/*.get<{{dataType.name}}>()*/;}
else { return {{>maybeOmittableType}}( {{defaultValue}} );}
}
{{/properties}}{{/normalResponse?}}{{/responses}}
{{/operation}}{{/operations}}
}

File Metadata

Mime Type
text/x-c++
Expires
Thu, Oct 2, 5:03 AM (11 h, 55 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
477816
Default Alt Text
operation.cpp.mustache (4 KB)

Event Timeline