1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- @php
- use Knuckles\Scribe\Tools\WritingUtils as u;
- /** @var Knuckles\Camel\Output\OutputEndpointData $endpoint */
- @endphp
- ```javascript
- const url = new URL(
- "{!! rtrim($baseUrl, '/') !!}/{{ ltrim($endpoint->boundUri, '/') }}"
- );
- @if(count($endpoint->cleanQueryParameters))
- const params = {!! u::printQueryParamsAsKeyValue($endpoint->cleanQueryParameters, "\"", ":", 4, "{}") !!};
- Object.keys(params)
- .forEach(key => url.searchParams.append(key, params[key]));
- @endif
- @if(!empty($endpoint->headers))
- const headers = {
- @foreach($endpoint->headers as $header => $value)
- "{{$header}}": "{{$value}}",
- @endforeach
- @empty($endpoint->headers['Accept'])
- "Accept": "application/json",
- @endempty
- };
- @endif
- @if($endpoint->hasFiles() || (isset($endpoint->headers['Content-Type']) && $endpoint->headers['Content-Type'] == 'multipart/form-data' && count($endpoint->cleanBodyParameters)))
- const body = new FormData();
- @foreach($endpoint->cleanBodyParameters as $parameter => $value)
- @foreach( u::getParameterNamesAndValuesForFormData($parameter, $value) as $key => $actualValue)
- body.append('{!! $key !!}', '{!! $actualValue !!}');
- @endforeach
- @endforeach
- @foreach($endpoint->fileParameters as $parameter => $value)
- @foreach( u::getParameterNamesAndValuesForFormData($parameter, $value) as $key => $file)
- body.append('{!! $key !!}', document.querySelector('input[name="{!! $key !!}"]').files[0]);
- @endforeach
- @endforeach
- @elseif(count($endpoint->cleanBodyParameters))
- @if ($endpoint->headers['Content-Type'] == 'application/x-www-form-urlencoded')
- let body = "{!! http_build_query($endpoint->cleanBodyParameters, '', '&') !!}";
- @else
- let body = {!! json_encode($endpoint->cleanBodyParameters, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) !!};
- @endif
- @endif
- fetch(url, {
- method: "{{$endpoint->httpMethods[0]}}",
- @if(count($endpoint->headers))
- headers,
- @endif
- @if($endpoint->hasFiles() || (isset($endpoint->headers['Content-Type']) && $endpoint->headers['Content-Type'] == 'multipart/form-data' && count($endpoint->cleanBodyParameters)))
- body,
- @elseif(count($endpoint->cleanBodyParameters))
- @if ($endpoint->headers['Content-Type'] == 'application/x-www-form-urlencoded')
- body,
- @else
- body: JSON.stringify(body),
- @endif
- @endif
- }).then(response => response.json());
- ```
|