mirror of
https://github.com/HenkKalkwater/harbour-sailfin.git
synced 2025-09-05 10:12:46 +00:00
WIP: Refractor C++-side. Loader should be working again
This commit is contained in:
parent
2360b261f7
commit
9643482ae1
840 changed files with 100813 additions and 23560 deletions
|
@ -8,10 +8,10 @@
|
|||
|
||||
class {{className}} : public {{supportNamespace}}::HttpLoader<{{dtoNamespace}}::{{endpoint.resultType}}, {{endpoint.parameterType}}> {
|
||||
public:
|
||||
explicit {{className}}(ApiClient *apiClient);
|
||||
explicit {{className}}(ApiClient *apiClient = nullptr);
|
||||
|
||||
protected:
|
||||
QString url(const {{endpoint.parameterType}}& parameters) const override;
|
||||
QString path(const {{endpoint.parameterType}}& parameters) const override;
|
||||
QUrlQuery query(const {{endpoint.parameterType}}& parameters) const override;
|
||||
};
|
||||
{{/if}}
|
||||
|
|
|
@ -1,2 +1,34 @@
|
|||
{{#if endpoint.hasSuccessResponse}}
|
||||
|
||||
{{className}}::{{className}}(ApiClient *apiClient)
|
||||
: Loader<>(apiClient) {}
|
||||
: {{supportNamespace}}::HttpLoader<{{dtoNamespace}}::{{endpoint.resultType}}, {{endpoint.parameterType}}>(apiClient) {}
|
||||
|
||||
QString {{className}}::path(const {{endpoint.parameterType}} ¶ms) const {
|
||||
Q_UNUSED(params) // Might be overzealous, but I don't like theses kind of warnings
|
||||
|
||||
return {{pathStringInterpolation "params"}};
|
||||
}
|
||||
|
||||
QUrlQuery {{className}}::query(const {{endpoint.parameterType}} ¶ms) const {
|
||||
Q_UNUSED(params) // Might be overzealous, but I don't like theses kind of warnings
|
||||
|
||||
QUrlQuery result;
|
||||
|
||||
{{#each endpoint.requiredQueryParameters as |p|}}
|
||||
result.addQueryItem("{{p.name}}", params.{{p.type.name}}());
|
||||
|
||||
{{/each}}
|
||||
|
||||
// Optional parameters
|
||||
|
||||
{{#each endpoint.optionalQueryParameters as |p|}}
|
||||
if (!params.{{p.type.name}}Null()) {
|
||||
result.addQueryItem("{{p.name}}", Support::toString(params.{{p.type.name}}()));
|
||||
}
|
||||
|
||||
{{/each}}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
{{/if}}
|
||||
|
|
|
@ -5,14 +5,23 @@ class {{e.name}} {
|
|||
public:
|
||||
|
||||
{{#each e.parameters as |param|}}
|
||||
|
||||
/**
|
||||
* @brief {{param.description}}
|
||||
|
||||
*/
|
||||
|
||||
{{param.type.typeNameWithQualifiers}} {{param.type.name}}() const;
|
||||
void set{{param.type.writeName}}({{param.type.typeNameWithQualifiers}} new{{param.type.writeName}}) const;
|
||||
|
||||
{{#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}}
|
||||
|
||||
|
@ -29,13 +38,6 @@ private:
|
|||
{{#each e.requiredQueryParameters as |param|}}
|
||||
{{param.type.typeNameWithQualifiers}} {{param.type.memberName}};
|
||||
|
||||
{{/each}}
|
||||
|
||||
// Optional path parameters
|
||||
|
||||
{{#each e.optionalPathParameters as |param|}}
|
||||
{{param.type.typeNameWithQualifiers}} {{param.type.memberName}};
|
||||
|
||||
{{/each}}
|
||||
|
||||
// Optional query parameters
|
||||
|
|
57
core/codegen/loader_types_implementation.hbs
Normal file
57
core/codegen/loader_types_implementation.hbs
Normal file
|
@ -0,0 +1,57 @@
|
|||
using namespace {{dtoNamespace}};
|
||||
|
||||
{{#each endpoints as |e|}}
|
||||
|
||||
// {{e.name}}
|
||||
|
||||
{{#each e.parameters as |param|}}
|
||||
|
||||
{{#if param.required}}
|
||||
const {{param.type.typeNameWithQualifiers}} &{{e.name}}::{{param.type.name}}() const {
|
||||
return {{param.type.memberName}};
|
||||
}
|
||||
|
||||
void {{e.name}}::set{{param.type.writeName}}({{param.type.typeNameWithQualifiers}} new{{param.type.writeName}}) {
|
||||
|
||||
{{param.type.memberName}} = new{{param.type.writeName}};
|
||||
}
|
||||
|
||||
{{else}}
|
||||
const {{param.type.typeName}} &{{e.name}}::{{param.type.name}}() const {
|
||||
|
||||
{{#if param.type.needsOptional}}
|
||||
return {{param.type.memberName}}.value();
|
||||
|
||||
{{else}}
|
||||
return {{param.type.memberName}};
|
||||
|
||||
{{/if}}
|
||||
}
|
||||
|
||||
void {{e.name}}::set{{param.type.writeName}}({{param.type.typeName}} new{{param.type.writeName}}) {
|
||||
|
||||
{{param.type.memberName}} = new{{param.type.writeName}};
|
||||
}
|
||||
|
||||
bool {{e.name}}::{{param.type.name}}Null() const {
|
||||
// Nullable: {{param.type.isNullable}}
|
||||
|
||||
// Type Nullable: {{param.type.isTypeNullable}}
|
||||
|
||||
|
||||
|
||||
return {{param.type.nullableCheck}};
|
||||
}
|
||||
|
||||
void {{e.name}}::set{{param.type.writeName}}Null() {
|
||||
|
||||
{{param.type.memberName}}{{param.type.nullableSetter}};
|
||||
}
|
||||
|
||||
{{/if}}
|
||||
|
||||
{{/each}}
|
||||
|
||||
|
||||
|
||||
{{/each}}
|
Loading…
Add table
Add a link
Reference in a new issue