1{{--
2 Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the GNU Affero General Public License v3.0.
3 See the LICENCE file in the repository root for full licence text.
4--}}
5@php
6 $isInput ??= true;
7 $level ??= 0;
8@endphp
9@foreach($fields as $name => $field)
10 @if($name === '[]')
11 @php
12 $description = "The request body is an array (<code>{$field['type']}</code>`)";
13 $description .= !empty($field['description']) ? ", representing ".lcfirst($field['description'])."." : '.';
14 if(count($field['__fields'])) $description .= " Each item has the following properties:";
15 @endphp
16 {!! Parsedown::instance()->text($description) !!}
17
18 @foreach($field['__fields'] as $subfieldName => $subfield)
19 @if(!empty($subfield['__fields']))
20 <x-scribe::nested-fields
21 :fields="[$subfieldName => $subfield]" :endpointId="$endpointId" :isInput="$isInput" :level="$level + 2"
22 />
23 @else
24 <div style="margin-left: {{ ($level + 2) * 14 }}px; clear: unset;">
25 @component('scribe::components.field-details', [
26 'name' => $subfieldName,
27 'fullName' => $subfield['name'],
28 'type' => $subfield['type'] ?? 'string',
29 'required' => $subfield['required'] ?? false,
30 'description' => $subfield['description'] ?? '',
31 // TODO: show correct example (from $subfield['example'])
32 'example' => '',
33 'endpointId' => $endpointId,
34 'hasChildren' => false,
35 'component' => 'body',
36 'isInput' => $isInput,
37 ])
38 @endcomponent
39 </div>
40 @endif
41 @endforeach
42 @elseif(!empty($field['__fields']))
43 <div style="@if($level) margin-left: {{ $level * 14 }}px;@else padding-left: 28px; @endif clear: unset;">
44 <details>
45 <summary style="padding-bottom: 10px;">
46 @component('scribe::components.field-details', [
47 'name' => $name,
48 'fullName' => $field['name'],
49 'type' => $field['type'] ?? 'string',
50 'required' => $field['required'] ?? false,
51 'description' => $field['description'] ?? '',
52 // TODO: show correct example (from $subfield['example'])
53 'example' => '',
54 'endpointId' => $endpointId,
55 'hasChildren' => true,
56 'component' => 'body',
57 'isInput' => $isInput,
58 ])
59 @endcomponent
60 </summary>
61 @foreach($field['__fields'] as $subfieldName => $subfield)
62 @if(!empty($subfield['__fields']))
63 <x-scribe::nested-fields
64 :fields="[$subfieldName => $subfield]" :endpointId="$endpointId" :isInput="$isInput" :level="$level + 1"
65 />
66 @else
67 <div style="margin-left: {{ ($level + 1) * 14 }}px; clear: unset;">
68 @component('scribe::components.field-details', [
69 'name' => $subfieldName,
70 'fullName' => $subfield['name'],
71 'type' => $subfield['type'] ?? 'string',
72 'required' => $subfield['required'] ?? false,
73 'description' => $subfield['description'] ?? '',
74 // TODO: show correct example (from $subfield['example'])
75 'example' => '',
76 'endpointId' => $endpointId,
77 'hasChildren' => false,
78 'component' => 'body',
79 'isInput' => $isInput,
80 ])
81 @endcomponent
82 </div>
83 @endif
84 @endforeach
85 </details>
86 </div>
87 @else
88 <div style="@if($level) margin-left: {{ ($level + 1) * 14 }}px;@else padding-left: 28px; @endif clear: unset;">
89 @component('scribe::components.field-details', [
90 'name' => $name,
91 'fullName' => $field['name'],
92 'type' => $field['type'] ?? 'string',
93 'required' => $field['required'] ?? false,
94 'description' => $field['description'] ?? '',
95 // TODO: show correct example (from $subfield['example'])
96 'example' => '',
97 'endpointId' => $endpointId,
98 'hasChildren' => false,
99 'component' => 'body',
100 'isInput' => $isInput,
101 ])
102 @endcomponent
103 </div>
104 @endif
105@endforeach