serviceController.njk 4.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
// @ts-ignore
/* eslint-disable */
{{ requestImportStatement }}

{% for api in list -%}
/** {{ api.desc if api.desc else '此处后端没有提供注释' }} {{api.method | upper}} {{ api.pathInComment | safe }} */
export async function {{ api.functionName }}(
{%- if api.params and api.hasParams %}
  params
  {%- if genType === "ts" -%}
  : {
    {# query 入参 -#}
    {% if api.params.query -%}
    // query
    {% for param in api.params.query -%}
    {% if param.description -%}
    /** {{ param.description }} */
    {% endif -%}
      '{{ param.name }}'
      {{- "?" if not param.required }}
      {{- (": " + param.type + ";") | safe }}
    {% endfor -%}
    {% endif -%}

    {# header 入参 -#}
    {% if api.params.header -%}
    // header
    {% for param in api.params.header -%}
    {% if param.description -%}
    /** {{ param.description }} */
    {% endif -%}
      '{{ param.name }}'
      {{- "?" if not param.required }}
      {{- (": " + param.type + ";") | safe }}
    {% endfor -%}
    {% endif -%}

    {# path 入参 -#}
    {% if api.params.path -%}
    // path
    {% for param in api.params.path -%}
    {% if param.description -%}
    /** {{ param.description }} */
    {% endif -%}
      '{{ param.name }}'
      {{- "?" if not param.required }}
      {{- (": " + param.type + ";") | safe }}
    {% endfor -%}
    {% endif -%}
  }
  {%- endif -%}
  {%- if api.hasParams %}
  {{ "," if api.body or api.file}}
  {%- endif %}
{%- endif -%}
{%- if api.body %}
  body
  {%- if genType === "ts" -%}
  {{- "?" if not api.body.required }}
  : {% if api.body.propertiesList %}{
    {%- for prop in api.body.propertiesList %}
    {% if prop.schema.description -%}
    /** {{ prop.schema.description }} */
    {% endif -%}
    {{ prop.key }}{{ "?" if not prop.schema.requird }}: {{ prop.schema.type }},
    {%- endfor %}
  }
  {%- else -%}
  {{ api.body.type }}
  {%- endif -%}
  {%- endif -%}
  {{ "," if api.file }}
{%- endif %}
{%- if api.file %}
files
{%- if genType === "ts" -%}
{{- "?" if not api.file.required }}
: File[]
{%- endif -%}
{%- endif -%}
{{ "," if api.body or api.hasParams or api.file }}
  options {{ "?: {[key: string]: any}" if genType === "ts" }}
) {
  {% if api.params and api.params.path -%}
  const { {% for param in api.params.path %}'{{ param.name }}': {{ param.alias }}, {% endfor %}
  {% if api.params.query -%}
  ...queryParams
  {% endif -%}
  } = params;
  {% endif -%}

  {% if api.hasFormData -%}
  const formData = new FormData();
  {% if api.file -%}
  if(files){
  {% for file in api.file %}
  formData.append('{{file.title | safe}}', files[{{ loop.index - 1 }}] || '')
  {% endfor %}
  }
  {%- endif -%}
  {% if api.body %}
  Object.keys(body).forEach(ele => {
    {% if genType === "ts" %}
    const item = (body as any)[ele];
    {% else %}
    const item = body[ele];
    {% endif %}
    if (item !== undefined && item !== null) {
      form.append(ele, typeof item === 'object' ? JSON.stringify(item) : item);
    }
  });
  {% endif %}
  {% endif -%}

  {% if api.hasPathVariables or api.hasApiPrefix -%}
  return request{{ ("<" + api.response.type + ">") | safe if genType === "ts" }}(`{{ api.path | safe }}`, {
  {% else -%}
  return request{{ ("<" + api.response.type + ">") | safe if genType === "ts" }}('{{ api.path }}', {
  {% endif -%}
    method: '{{ api.method | upper }}',
    {%- if api.params and api.hasParams %}
    params: {
      {%- for query in api.params.query %}
        {% if query.schema.default -%}
          // {{query.name | safe}} has a default value: {{ query.schema.default | safe }}
          '{{query.name | safe}}': '{{query.schema.default | safe}}',
        {%- endif -%}
      {%- endfor -%}
      ...{{ 'queryParams' if api.params and api.params.path and api.params.query else 'params' }},
      {%- for query in api.params.query %}
        {%- if query.isComplexType %}
          '{{query.name | safe}}': undefined,
          ...{{ 'queryParams' if api.params and api.params.path and api.params.query else 'params' }}['{{query.name | safe}}'],
        {%- endif %}
      {%- endfor -%}
    },
    {%- endif %}
    {%- if api.hasFormData %}
    data: formData,
    {%- else %}
    {%- if api.body %}
    data: body,
    {%- endif %}
    {%- endif %}
    ...(options || {}),
  });
}

{% endfor -%}