39 reference<bool> required) {
41 hash<string, hash<string, AbstractDataField>> params;
43 hash<string, bool> req_map;
44 foreach hash<auto> i in (parameters.pairIterator());
47 foreach hash<auto> i in (params.pairIterator());
59 bool required = True) {
62 if (schema.
type ==
'object');
76 *
SchemaObject arrayItems, *
string desc,
bool required, *list<auto> allowed_values) {
78 RecursiveFieldHelper rfh(self,
"field", path);
79 return rfh.get() ?? rfh.set(
new QoreDataField(name, desc,
getType(path, type, format, arrayItems, required),
80 NOTHING, allowed_values));
84 private AbstractDataProviderType
getType(
string path,
string typestr, *
string format, *
SchemaObject arrayItems,
85 bool required = True) {
86 hash<auto> type_options;
89 if (typestr ==
'string');
94 if (*
string newname = OptimalQoreSoftDataTypeMap{typestr});
96 if (!required && (typestr !=
'any' && typestr !=
'auto'));
98 return AbstractDataProviderType::get(
new Type(typestr), type_options);
110const RecursiveKey =
"__swagger_dp_rec_key$$";
112class RecursiveFieldHelper {
116 *hash<auto> tld = get_thread_data(RecursiveKey);
124 constructor(
object obj,
string ptype,
string name);
127 *QoreDataField get();
130 QoreDataField set(QoreDataField new_field);
134class RecursiveTypeHelper {
140 *AbstractDataProviderType t;
144 constructor(
object obj,
string hash_str);
147 *AbstractDataProviderType get();
150 AbstractDataProviderType set(AbstractDataProviderType new_type);
154class RecursiveSearchHelper {
The Swagger data provider base class.
Definition: SwaggerDataProviderBase.qc.dox.h:28
AbstractDataField getFieldForHeaders(string name, hash< auto > headers)
Returns a field of header fields.
AbstractDataProviderType getSchemaDataType(string path, SchemaObject schema, bool required=True)
Returns the data type for the given schema.
private AbstractDataProviderType getType(string path, string typestr, *string format, *SchemaObject arrayItems, bool required=True)
Returns the data type corresponding to the values.
Definition: SwaggerDataProviderBase.qc.dox.h:84
private AbstractDataField getFieldFromSchemaIntern(string path, string name, *string desc, SchemaObject schema, bool required=True)
Returns a field definition from the Swagger parameter.
Definition: SwaggerDataProviderBase.qc.dox.h:58
private addFieldsFromParameters(HashDataType rv, hash< string, AbstractParameterObject > parameters, reference< bool > required)
Returns a field definition from Swagger parameters.
Definition: SwaggerDataProviderBase.qc.dox.h:38
AbstractDataField getFieldFromSchema(string name, *string desc, SchemaObject schema, bool required=True)
Returns a field definition from the Swagger parameter.
private AbstractDataField getFieldFromParameter(string path, string name, string type, *string format, *SchemaObject arrayItems, *string desc, bool required, *list< auto > allowed_values)
Returns a field from a Swagger parameter.
Definition: SwaggerDataProviderBase.qc.dox.h:75
hash< DataProviderInfo > getStaticInfoImpl()
Returns data provider static info.
auto get_thread_data(string key)
Qore SwaggerDataProvider module definition.
Definition: SwaggerDataProvider.qc.dox.h:26