1
0
Fork 0
mirror of https://github.com/HenkKalkwater/harbour-sailfin.git synced 2024-05-02 12:42:42 +00:00
harbour-sailfin/core/codegen/loader_types_header.hbs
Chris Josten 96ecd8e7d8 Refractor ApiClient and add support for body params
ApiClient was refractored to use PIMPL. This is mainly done to reduce
compile times whenever the implementation of ApiClient itself changes,
since a lot of files include it.

The loaders have gained support for body parameters, this was somehow
omitted before.
2021-09-03 03:47:25 +02:00

70 lines
1.5 KiB
Handlebars

using namespace {{dtoNamespace}};
{{#each endpoints as |e|}}
class {{e.name}} {
public:
{{#each e.parameters as |param|}}
/**
* @brief {{param.description}}
*/
{{#if param.required}}
const {{param.type.typeNameWithQualifiers}} &{{param.type.name}}() const;
void set{{param.type.writeName}}({{param.type.typeNameWithQualifiers}} new{{param.type.writeName}});
{{else}}
const {{param.type.typeName}} &{{param.type.name}}() const;
void set{{param.type.writeName}}({{param.type.typeName}} new{{param.type.writeName}});
bool {{param.type.name}}Null() const;
void set{{param.type.writeName}}Null();
{{/if}}
{{/each}}
private:
// Required path parameters
{{#each e.requiredPathParameters as |param|}}
{{param.type.typeNameWithQualifiers}} {{param.type.memberName}};
{{/each}}
// Required query parameters
{{#each e.requiredQueryParameters as |param|}}
{{param.type.typeNameWithQualifiers}} {{param.type.memberName}};
{{/each}}
// Optional query parameters
{{#each e.optionalQueryParameters as |param|}}
{{#if param.type.defaultInitializer.length > 0}}
{{param.type.typeNameWithQualifiers}} {{param.type.memberName}} = {{param.type.defaultInitializer}};
{{else}}
{{param.type.typeNameWithQualifiers}} {{param.type.memberName}};
{{/if}}
{{/each}}
{{#if e.bodyParameters.length > 0}}
// Body parameters
{{#if e.bodyParameters.length == 1}}
{{e.bodyParameters[0].type.typeNameWithQualifiers}} m_body;
{{else}}
//FIXME: Multiple body options not implemented.
{{/if}}
{{/if}}
};
{{/each}}