javascript.blade.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. ```javascript
  2. const url = new URL(
  3. "{{ rtrim($baseUrl, '/') }}/{{ ltrim($route['boundUri'], '/') }}"
  4. );
  5. @if(count($route['cleanQueryParameters']))
  6. let params = {!! \Knuckles\Scribe\Tools\WritingUtils::printQueryParamsAsKeyValue($route['cleanQueryParameters'], "\"", ":", 4, "{}") !!};
  7. Object.keys(params)
  8. .forEach(key => url.searchParams.append(key, params[key]));
  9. @endif
  10. @if(!empty($route['headers']))
  11. let headers = {
  12. @foreach($route['headers'] as $header => $value)
  13. "{{$header}}": "{{$value}}",
  14. @endforeach
  15. @if(!array_key_exists('Accept', $route['headers']))
  16. "Accept": "application/json",
  17. @endif
  18. };
  19. @endif
  20. @if(count($route['fileParameters']))
  21. const body = new FormData();
  22. @foreach($route['cleanBodyParameters'] as $parameter => $value)
  23. @foreach( \Knuckles\Scribe\Tools\WritingUtils::getParameterNamesAndValuesForFormData($parameter, $value) as $key => $actualValue)
  24. body.append('{!! $key !!}', '{!! $actualValue !!}');
  25. @endforeach
  26. @endforeach
  27. @foreach($route['fileParameters'] as $parameter => $value)
  28. @foreach( \Knuckles\Scribe\Tools\WritingUtils::getParameterNamesAndValuesForFormData($parameter, $value) as $key => $file)
  29. body.append('{!! $key !!}', document.querySelector('input[name="{!! $key !!}"]').files[0]);
  30. @endforeach
  31. @endforeach
  32. @elseif(count($route['cleanBodyParameters']))
  33. let body = {!! json_encode($route['cleanBodyParameters'], JSON_PRETTY_PRINT) !!}
  34. @endif
  35. fetch(url, {
  36. method: "{{$route['methods'][0]}}",
  37. @if(count($route['headers']))
  38. headers,
  39. @endif
  40. @if(count($route['fileParameters']))
  41. body,
  42. @elseif(count($route['cleanBodyParameters']))
  43. body: JSON.stringify(body),
  44. @endif
  45. }).then(response => response.json());
  46. ```