@@ -50,10 +50,7 @@ bool {{apiClassnameInPascalCase}}::parse{{operationIdPascalCase}}Params(const ht
5050 errors.push_back(" Missing required request body" );
5151 } { {/bodyParam.vendorExtensions.isRequired} }
5252{ {/requestModel} }
53- { {#queryParams} }
54- { {#-first} }
55-
56- { {/-first} }
53+ { {#queryParams} }{ {#-first} }{ {/-first} }
5754 // Query Parameters - { {baseName} }
5855 if (req.has_param("{ {baseName} }"))
5956 {
@@ -160,12 +157,22 @@ bool {{apiClassnameInPascalCase}}::parse{{operationIdPascalCase}}Params(const ht
160157{ {/vendorExtensions.isOptional} }
161158{ {/items.vendorExtensions.isFloat} }
162159{ {^items.vendorExtensions.isInt} }{ {^items.vendorExtensions.isLong} }{ {^items.vendorExtensions.isDouble} }{ {^items.vendorExtensions.isFloat} }
160+ { {#items.vendorExtensions.isEnum} }
161+ { {#vendorExtensions.isOptional} }
162+ params.m_{ {paramName} }->emplace_back({ {items.vendorExtensions.enumFromStringHelper} }(val));
163+ { {/vendorExtensions.isOptional} }
164+ { {^vendorExtensions.isOptional} }
165+ params.m_{ {paramName} }.emplace_back({ {items.vendorExtensions.enumFromStringHelper} }(val));
166+ { {/vendorExtensions.isOptional} }
167+ { {/items.vendorExtensions.isEnum} }
168+ { {^items.vendorExtensions.isEnum} }
163169{ {#vendorExtensions.isOptional} }
164170 params.m_{ {paramName} }->emplace_back(val);
165171{ {/vendorExtensions.isOptional} }
166172{ {^vendorExtensions.isOptional} }
167173 params.m_{ {paramName} }.emplace_back(val);
168174{ {/vendorExtensions.isOptional} }
175+ { {/items.vendorExtensions.isEnum} }
169176{ {/items.vendorExtensions.isFloat} }{ {/items.vendorExtensions.isDouble} }{ {/items.vendorExtensions.isLong} }{ {/items.vendorExtensions.isInt} }
170177 }
171178 }
@@ -225,9 +232,9 @@ bool {{apiClassnameInPascalCase}}::parse{{operationIdPascalCase}}Params(const ht
225232 catch (const std::exception& e)
226233 {
227234 errors.push_back(" Invalid query parameter '{{baseName}}': " + std::string(e.what()));
228- } { {/vendorExtensions.isArray} }{ {#vendorExtensions.isEnum} }try
235+ } { {/vendorExtensions.isArray} }{ {^vendorExtensions.isArray } } { { #vendorExtensions.isEnum} }try
229236 {
230- params.m_{{paramName} } = { {enumFromStringHelper} }(req.get_param_value("{ {baseName} }"));
237+ params.m_{{paramName} } = { {requestType } }:: { {vendorExtensions. enumFromStringHelper} }(req.get_param_value("{ {baseName} }"));
231238 }
232239 catch (const std::exception& e)
233240 {
@@ -267,19 +274,16 @@ bool {{apiClassnameInPascalCase}}::parse{{operationIdPascalCase}}Params(const ht
267274 catch (const std::exception& e)
268275 {
269276 errors.push_back(" Invalid query parameter '{{baseName}}': " + std::string(e.what()));
270- } { {/vendorExtensions.isFloat} }{ {^vendorExtensions.isObject} }{ {^vendorExtensions.isArray } } { {^vendorExtensions. isEnum} }{ {^vendorExtensions.isString} }{ {^vendorExtensions.isInt} }{ {^vendorExtensions.isLong} }{ {^vendorExtensions.isBool} }{ {^vendorExtensions.isDouble} }{ {^vendorExtensions.isFloat} }// Fallback: direct assignment
271- params.m_{ {paramName} } = req.get_param_value("{ {baseName} }");{ {/vendorExtensions.isFloat} }{ {/vendorExtensions.isDouble} }{ {/vendorExtensions.isBool} }{ {/vendorExtensions.isLong} }{ {/vendorExtensions.isInt} }{ {/vendorExtensions.isString} }{ {/vendorExtensions.isEnum} }{ {/vendorExtensions.isArray } }{ {/vendorExtensions.isObject } }
277+ } { {/vendorExtensions.isFloat} }{ {^vendorExtensions.isObject} }{ {^vendorExtensions.isEnum} }{ {^vendorExtensions.isString} }{ {^vendorExtensions.isInt} }{ {^vendorExtensions.isLong} }{ {^vendorExtensions.isBool} }{ {^vendorExtensions.isDouble} }{ {^vendorExtensions.isFloat} }// Fallback: direct assignment
278+ params.m_{ {paramName} } = req.get_param_value("{ {baseName} }");{ {/vendorExtensions.isFloat} }{ {/vendorExtensions.isDouble} }{ {/vendorExtensions.isBool} }{ {/vendorExtensions.isLong} }{ {/vendorExtensions.isInt} }{ {/vendorExtensions.isString} }{ {/vendorExtensions.isEnum} }{ {/vendorExtensions.isObject } }{ {/vendorExtensions.isArray } }
272279 }{ {^vendorExtensions.isRequired} }{ {#vendorExtensions.hasDefaultValue} }
273280 else
274281 {
275282 // Use default value for optional parameter
276283 params.m_{{paramName} } = { {{vendorExtensions.defaultValue} }};
277284 }{ {/vendorExtensions.hasDefaultValue} }{ {/vendorExtensions.isRequired} }
278285{ {/queryParams} }
279- { {#headerParams} }
280- { {#-first} }
281-
282- { {/-first} }
286+ { {#headerParams} }{ {#-first} }{ {/-first} }
283287 // Header Parameters - { {baseName} }
284288 if (!req.get_header_value("{ {baseName} }").empty())
285289 {
@@ -318,9 +322,9 @@ bool {{apiClassnameInPascalCase}}::parse{{operationIdPascalCase}}Params(const ht
318322 catch (const std::exception& e)
319323 {
320324 errors.push_back(" Invalid header parameter '{{baseName}}': " + std::string(e.what()));
321- } { {/vendorExtensions.isArray} }{ {#vendorExtensions.isEnum} }try
325+ } { {/vendorExtensions.isArray} }{ {^vendorExtensions.isArray } } { { #vendorExtensions.isEnum} }try
322326 {
323- params.m_{{paramName} } = { {enumFromStringHelper} }(req.get_header_value("{ {baseName} }"));
327+ params.m_{{paramName} } = { {requestType } }:: { {vendorExtensions. enumFromStringHelper} }(req.get_header_value("{ {baseName} }"));
324328 }
325329 catch (const std::exception& e)
326330 {
@@ -360,19 +364,16 @@ bool {{apiClassnameInPascalCase}}::parse{{operationIdPascalCase}}Params(const ht
360364 catch (const std::exception& e)
361365 {
362366 errors.push_back(" Invalid header parameter '{{baseName}}': " + std::string(e.what()));
363- } { {/vendorExtensions.isFloat} }{ {^vendorExtensions.isObject} }{ {^vendorExtensions.isArray } } { {^vendorExtensions. isEnum} }{ {^vendorExtensions.isString} }{ {^vendorExtensions.isInt} }{ {^vendorExtensions.isLong} }{ {^vendorExtensions.isBool} }{ {^vendorExtensions.isDouble} }{ {^vendorExtensions.isFloat} }// Fallback: direct assignment
364- params.m_{ {paramName} } = req.get_header_value("{ {baseName} }");{ {/vendorExtensions.isFloat} }{ {/vendorExtensions.isDouble} }{ {/vendorExtensions.isBool} }{ {/vendorExtensions.isLong} }{ {/vendorExtensions.isInt} }{ {/vendorExtensions.isString} }{ {/vendorExtensions.isEnum} }{ {/vendorExtensions.isArray } }{ {/vendorExtensions.isObject } }
367+ } { {/vendorExtensions.isFloat} }{ {^vendorExtensions.isObject} }{ {^vendorExtensions.isEnum} }{ {^vendorExtensions.isString} }{ {^vendorExtensions.isInt} }{ {^vendorExtensions.isLong} }{ {^vendorExtensions.isBool} }{ {^vendorExtensions.isDouble} }{ {^vendorExtensions.isFloat} }// Fallback: direct assignment
368+ params.m_{ {paramName} } = req.get_header_value("{ {baseName} }");{ {/vendorExtensions.isFloat} }{ {/vendorExtensions.isDouble} }{ {/vendorExtensions.isBool} }{ {/vendorExtensions.isLong} }{ {/vendorExtensions.isInt} }{ {/vendorExtensions.isString} }{ {/vendorExtensions.isEnum} }{ {/vendorExtensions.isObject } }{ {/vendorExtensions.isArray } }
365369 }{ {^vendorExtensions.isRequired} }{ {#vendorExtensions.hasDefaultValue} }
366370 else
367371 {
368372 // Use default value for optional parameter
369373 params.m_{{paramName} } = { {{vendorExtensions.defaultValue} }};
370374 }{ {/vendorExtensions.hasDefaultValue} }{ {/vendorExtensions.isRequired} }
371375{ {/headerParams} }
372- { {#pathParams} }
373- { {#-first} }
374-
375- { {/-first} }
376+ { {#pathParams} }{ {#-first} }{ {/-first} }
376377 // Path Parameters - { {baseName} } (index: { {vendorExtensions.pathIndex} })
377378 if (req.matches.size() < { {vendorExtensions.pathIndex} } + 1)
378379 {
@@ -400,17 +401,27 @@ bool {{apiClassnameInPascalCase}}::parse{{operationIdPascalCase}}Params(const ht
400401 {
401402 if (! item.empty())
402403 {
404+ {{#items.vendorExtensions.isEnum} }
405+ { {#vendorExtensions.isOptional} }
406+ params.m_{ {paramName} }->emplace_back({ {items.vendorExtensions.enumFromStringHelper} }(val));
407+ { {/vendorExtensions.isOptional} }
408+ { {^vendorExtensions.isOptional} }
409+ params.m_{ {paramName} }.emplace_back({ {items.vendorExtensions.enumFromStringHelper} }(val));
410+ { {/vendorExtensions.isOptional} }
411+ { {/items.vendorExtensions.isEnum} }
412+ { {^items.vendorExtensions.isEnum} }
403413{ {#vendorExtensions.isOptional} }
404414 params.m_{ {paramName} }->emplace_back(item);
405415{ {/vendorExtensions.isOptional} }
406416{ {^vendorExtensions.isOptional} }
407417 params.m_{ {paramName} }.emplace_back(item);
408418{ {/vendorExtensions.isOptional} }
419+ { {/items.vendorExtensions.isEnum} }
409420 }
410421 }
411- { {/vendorExtensions.isArray} }
422+ { {/vendorExtensions.isArray} }
412423 { {#vendorExtensions.isEnum} }
413- params.m_{ {paramName} } = { {enumFromStringHelper} }(req.matches[{ {vendorExtensions.pathIndex} }]);
424+ params.m_{ {paramName} } = { {requestType } }:: { {vendorExtensions. enumFromStringHelper} }(req.matches[{ {vendorExtensions.pathIndex} }]);
414425 { {/vendorExtensions.isEnum} }
415426 { {#vendorExtensions.isString} }
416427 params.m_{ {paramName} } = req.matches[{ {vendorExtensions.pathIndex} }];
@@ -437,10 +448,8 @@ bool {{apiClassnameInPascalCase}}::parse{{operationIdPascalCase}}Params(const ht
437448 }
438449 }
439450{ {/pathParams} }
440- { {#cookieParams} }
441- { {#-first} }
451+ { {#cookieParams} }{ {#-first} }{ {/-first} }
442452
443- { {/-first} }
444453 // Cookie Parameters - { {baseName} }
445454 try
446455 {
@@ -467,20 +476,25 @@ bool {{apiClassnameInPascalCase}}::parse{{operationIdPascalCase}}Params(const ht
467476 {
468477 if (! item.empty())
469478 {
479+ {{#items.vendorExtensions.isEnum} }
480+ { {#vendorExtensions.isOptional} }
481+ params.m_{ {paramName} }->emplace_back({ {items.vendorExtensions.enumFromStringHelper} }(item));
482+ { {/vendorExtensions.isOptional} }
483+ { {^vendorExtensions.isOptional} }
484+ params.m_{ {paramName} }.emplace_back({ {items.vendorExtensions.enumFromStringHelper} }(item));
485+ { {/vendorExtensions.isOptional} }
486+ { {/items.vendorExtensions.isEnum} }
487+ { {^items.vendorExtensions.isEnum} }
470488{ {#vendorExtensions.isOptional} }
471489 params.m_{ {paramName} }->emplace_back(item);
472490{ {/vendorExtensions.isOptional} }
473491{ {^vendorExtensions.isOptional} }
474492 params.m_{ {paramName} }.emplace_back(item);
475493{ {/vendorExtensions.isOptional} }
494+ { {/items.vendorExtensions.isEnum} }
476495 }
477- }{{/vendorExtensions.isArray}}{{#vendorExtensions.isEnum}}params.m_{{paramName}} = {{enumFromStringHelper}}(cookieValue);{{/vendorExtensions.isEnum}}{{#vendorExtensions.isString}}params.m_{{paramName}} = cookieValue;{{/vendorExtensions.isString}}{{#vendorExtensions.isInt}}params.m_{{paramName}} = std::stoi(cookieValue);{{/vendorExtensions.isInt}}{{#vendorExtensions.isLong}}params.m_{{paramName}} = std::stoll(cookieValue);{{/vendorExtensions.isLong}}{{#vendorExtensions.isBool}}params.m_{{paramName}} = (cookieValue == "true");{{/vendorExtensions.isBool}}{{#vendorExtensions.isDouble}}params.m_{{paramName}} = std::stod(cookieValue);{{/vendorExtensions.isDouble}}{{#vendorExtensions.isFloat}}params.m_{{paramName}} = std::stof(cookieValue);{{/vendorExtensions.isFloat}}{{^vendorExtensions.isObject}}{{^vendorExtensions.isArray}}{{^vendorExtensions.isEnum}}{{^vendorExtensions.isString}}{{^vendorExtensions.isInt}}{{^vendorExtensions.isLong}}{{^vendorExtensions.isBool}}{{^vendorExtensions.isDouble}}{{^vendorExtensions.isFloat}}params.m_{{paramName}} = cookieValue;{{/vendorExtensions.isFloat}}{{/vendorExtensions.isDouble}}{{/vendorExtensions.isBool}}{{/vendorExtensions.isLong}}{{/vendorExtensions.isInt}}{{/vendorExtensions.isString}}{{/vendorExtensions.isEnum}}{{/vendorExtensions.isArray}}{{/vendorExtensions.isObject}}
478- }{ {^vendorExtensions.isRequired} }{ {#vendorExtensions.hasDefaultValue} }
479- else
480- {
481- // Use default value for optional parameter
482- params.m_{{paramName} } = { {{vendorExtensions.defaultValue} }};
483- }{ {/vendorExtensions.hasDefaultValue} }{ {/vendorExtensions.isRequired} }
496+ }{ {/vendorExtensions.isArray} }{ {#vendorExtensions.isEnum} }params.m_{ {paramName} } = { {requestType} }::{ {vendorExtensions.enumFromStringHelper} }(cookieValue);{ {/vendorExtensions.isEnum} }{ {^vendorExtensions.isEnum} }{ {#vendorExtensions.isInt} }params.m_{ {paramName} } = std::stoi(cookieValue);{ {/vendorExtensions.isInt} }{ {#vendorExtensions.isLong} }params.m_{ {paramName} } = std::stoll(cookieValue);{ {/vendorExtensions.isLong} }{ {#vendorExtensions.isBool} }params.m_{ {paramName} } = (cookieValue == "true");{ {/vendorExtensions.isBool} }{ {#vendorExtensions.isDouble} }params.m_{ {paramName} } = std::stod(cookieValue);{ {/vendorExtensions.isDouble} }{ {#vendorExtensions.isFloat} }params.m_{ {paramName} } = std::stof(cookieValue);{ {/vendorExtensions.isFloat} }{ {#vendorExtensions.isString} }params.m_{ {paramName} } = cookieValue;{ {/vendorExtensions.isString} }{ {/vendorExtensions.isEnum} }
497+ }
484498 }{ {^vendorExtensions.isRequired} }{ {#vendorExtensions.hasDefaultValue} }
485499 else
486500 {
@@ -744,7 +758,7 @@ void {{apiClassnameInPascalCase}}::registerRoutes(httplib::Server& svr{{#hasAnyA
744758 {{#operations} }
745759 { {#operation} }
746760 { {#vendorExtensions} }
747- svr.{ {httpMethod} }("{ {path } }", [this{ {#hasAuth} }, auth{ {/hasAuth} }]([[maybe_unused]] const httplib::Request& req, httplib::Response& res)
761+ svr.{ {httpMethod} }("{ {httplibPath } }", [this{ {#hasAuth} }, auth{ {/hasAuth} }]([[maybe_unused]] const httplib::Request& req, httplib::Response& res)
748762 {
749763 handle{{operationIdPascalCase} }Request(req, res{ {#hasAuth} }, auth{ {/hasAuth} });
750764 });
0 commit comments