'use strict';

/**
 * @description {{apis.title}}
 * @author coder
 * @module @/api/{{model}}
 */
import request from '@/utils/request';
import apiurl from '@/apiurl';
import {
  compilePath
} from '@/utils/xd.path';
let { {{apis.name}} } = apiurl;


{{each apis.value}}
  {{set methodKey = $value.methodKey}}
  {{set paramsData = $value.data }}
  {{set params = 'data' }}
  {{if $value.method === 'get'}}
  {{set params = 'params'}}
  {{set paramsData = $value.params }}
  {{/if}}

  {{if !$value.isParams}}
    {{set params = '' }}
    {{set paramsData = {} }}
  {{/if}}


  /**
   * @description {{apis.title}} - {{$value.title}}
    {{if $value.isParams}}
      * @param {{params}} { Object }
      {{each paramsData }}
        * @param {{params}}.{{$index}} { {{@ $value[1]}} }  {{$value[0]}}  ({{$value[2]}}）{{if $value[3]}}默认值：{{$value[3]}}{{/if}}
      {{/each}}
    {{/if}}
   * @returns { Promise | * }
   */

  export function {{$value.fnName}}({{params}}) {
    {{if $value.defaultParams &&  $value.isParams }}
    {{params}} = Object.assign({},{{@ $value.defaultParams}},{{params}});
    {{/if}}

    console.warn(`apiUrl: ${ {{apis.name}}['{{$value.key}}'] }`)

    {{if $value.method !== 'get'}}
    const headers = {
      "Content-Type": '{{$value.formType}}',
    }
    {{/if}}

    {{if $value.hasSpecialPlaceholder}}
      let {url , result} = compilePath({{apis.name}}['{{$value.key}}'], {{params}});
    {{/if}}

    return request({
      apiPath:{{apis.name}}['{{$value.key}}'],
      {{if $value.hasSpecialPlaceholder}}
        url: url,
      {{else}}
        url: {{apis.name}}['{{$value.key}}'],
      {{/if}}
      {{if $value.method !== 'get'}}
      headers,
      {{/if}}
      method: '{{$value.method}}',
      {{if $value.hasSpecialPlaceholder}}
        {{params}}: result,
      {{else}}
        {{params}}
      {{/if}}
    })
  }
{{/each}}

