{%- import "helper/util.html" as util %} {%- macro indent(pad_length) -%} {{ " " * 2 * pad_length }} {%- endmacro -%} {%- macro property_name_decorator(name) -%} "{{ name }}": {%- endmacro -%} {%- macro uri_sampled(uri, parameters) %} {%- if parameters %} {%- set sampled = uri %} {%- for parameter in parameters.values() %} {%- set sampled = sampled|replace("{" + parameter.name + "}", parameter.sample) %} {%- if loop.last %} {{- sampled -}} {%- endif %} {%- endfor %} {%- set first_param = True -%} {%- set active_query_string = (uri.find("?") < 0) -%} {%- for parameter in parameters.values()|sort -%} {%- if parameter.is_query_string -%} {%- if active_query_string -%}?{% endif -%} {%- if first_param -%} {{ parameter.name }}={{ parameter.sample }} {%- else -%} &s;{{ parameter.name }}={{ parameter.sample }} {%- endif -%} {%- set active_query_string = false -%} {%- set first_param = false -%} {% endif -%} {%- endfor %} {%- else %} {{- uri -}} {%- endif %} {%- endmacro -%} {%- macro code_sampled(object, prefix="", suffix="", pad_length=0) -%} {%- if object.type|lower == "object" -%} {{ indent(pad_length) }}{{ prefix }}{ {%- for property_name in object.properties.keys()|sort -%} {%- if loop.last -%} {{- code_sampled(object.properties[property_name], property_name_decorator(property_name), "", pad_length+1) }} {%- else -%} {{- code_sampled(object.properties[property_name], property_name_decorator(property_name), ", ", pad_length+1) }} {%- endif -%} {%- endfor %} {{ indent(pad_length) }}}{{ suffix }} {%- elif object.type|lower == "array" -%} {{ indent(pad_length) }}{{ prefix }}[ {%- for i in range(0, object.sample_count) -%} {%- if loop.last -%} {{- code_sampled(object.items, "", "", pad_length+1) }} {%- else -%} {{- code_sampled(object.items, "", ", ", pad_length+1) }} {%- endif -%} {%- endfor %} {{ indent(pad_length) }}]{{ suffix }} {%- elif object.type|lower == "number" -%} {{ indent(pad_length) }}{{ prefix }}{{ object.sample }}{{ suffix }} {%- elif object.type|lower == "integer" -%} {{ indent(pad_length) }}{{ prefix }}{{ object.sample }}{{ suffix }} {%- elif object.type|lower == "string" -%} {{ indent(pad_length) }}{{ prefix }}"{{ object.sample }}"{{ suffix }} {%- elif object.type|lower == "boolean" -%} {{ indent(pad_length) }}{{ prefix }}{% if object.sample %}true{% else %}false{% endif %}{{ suffix }} {%- elif object.type|lower == "none" -%} {{ indent(pad_length) }}{{ prefix }}null{{ suffix }} {%- elif object.type|lower == "const" -%} {%- if object.const_type|lower == "number" -%} {{ indent(pad_length) }}{{ prefix }}{{ object.value }}{{ suffix }} {%- elif object.const_type|lower == "integer" -%} {{ indent(pad_length) }}{{ prefix }}{{ object.value }}{{ suffix }} {%- elif object.const_type|lower == "string" -%} {{ indent(pad_length) }}{{ prefix }}"{{ object.value }}"{{ suffix }} {%- elif object.const_type|lower == "boolean" -%} {{ indent(pad_length) }}{{ prefix }}{% if object.value %}true{% else %}false{% endif %}{{ suffix }} {%- endif -%} {%- elif object.type|lower == "dynamic" -%} {{ indent(pad_length) }}{{ prefix }}{ {%- for key, value in object.sample.items() -%} {{ indent(pad_length + 1) }}"{{ key }}": "{{ value }}" {%- if not loop.last -%} , {%- endif -%} {%- endfor %} {{ indent(pad_length) }}}{{ suffix }} {%- elif object.type|lower == "enum" -%} {{ indent(pad_length) }}{{ prefix }}"{{ object.sample }}"{{ suffix }} {%- elif object.type|lower == "type" -%} {{- code_sampled(object.type_object, prefix, suffix, pad_length) }} {%- else -%} {{ indent(pad_length) }}{{ prefix }}"{{ object.sample }}"{{ suffix }} {%- endif -%} {%- endmacro -%}