@extends('admin._layout.layout')

@section('header')
    {{ trans('admin.head.api_doc') }}

    &nbsp;&nbsp;

@endsection

@section('main')
    <div class="row" style="padding-bottom: 20px;">

        <div class="col-md-12" style="padding-bottom: 15px;">
            <ul class="nav nav-tabs">
                @foreach ($versions as $vName => $version)
                <li {!! $active_version == $vName ? 'class="active"' : '' !!}>
                    <a href="{{ route('admin.api_doc.list', ['version' => $vName]) }}">{{ $version['title'] }}</a>
                </li>
                @endforeach
            </ul>
        </div>

        <div class="col-md-3">
            <div class="panel-group" id="accordion-categories">

                @foreach ($docs as $key => $categories)
                    @if ($categories)
                    <div class="panel">
                        <div class="panel-heading">
                            <a class="accordion-toggle collapsed api-doc"
                               data-toggle="collapse"
                               data-parent="#accordion-categories"
                               href="#collapse-category-{{ $key }}"
                               aria-expanded="false">

                                {{ $categories['title'] }}
                            </a>
                        </div>
                        <div id="collapse-category-{{ $key }}"
                             class="panel-collapse collapse {{ $key == 0 ? 'in' : '' }}"
                             aria-expanded="{{ $key == 0 ? 'true' : 'false' }}">

                            <div class="list-group">

                                @if (isset($categories['endpoints']) && !empty($categories['endpoints']))
                                    @foreach ($categories['endpoints'] as $cat_key => $endpoint)
                                        <a href="#api-desc-{{ $key }}-{{ $cat_key }}" class="list-group-item api-link-item {{ ($key == 0 && $cat_key == 0) ? 'active' : '' }}">

                                            @if(isset($endpoint['method']))
                                                @if(is_array($endpoint['method']))
                                                    @foreach($endpoint['method'] as $method)
                                                        <span class="badge badge-{{ $method == 'GET' ? 'info' : 'success' }}">
                                                            {{ $method }}
                                                        </span>
                                                    @endforeach
                                                @else
                                                    <span class="badge badge-{{ $endpoint['method'] == 'GET' ? 'info' : 'success' }}">
                                                        {{ $endpoint['method'] }}
                                                    </span>
                                                @endif
                                            @endif

                                                {{ $endpoint['title'] ?? '' }}

                                            @if (isset($endpoint['desc']) && !empty($endpoint['desc']))
                                                <div class="text-muted api-desc-item">{{ $endpoint['desc'] }}</div>
                                            @endif
                                        </a>
                                    @endforeach
                                @else
                                    <span class="list-group-item">Empty</span>
                                @endif

                            </div>
                        </div>
                    </div>
                    @else
                        <hr />
                    @endif
                @endforeach

            </div>
        </div>

        <div class="col-md-9">

            @foreach ($docs as $key => $categories)

                @if (isset($categories['endpoints']) && !empty($categories['endpoints']))

                    @foreach ($categories['endpoints'] as $cat_key => $endpoint)
                    <div class="panel api-panel-desc {{ ($key == 0 && $cat_key == 0) ? '' : 'hidden' }}"
                         id="api-desc-{{ $key }}-{{ $cat_key }}">

                        <div class="panel-title">{{ isset($endpoint['title'])?$endpoint['title']:'' }}</div>

                        @if (isset($endpoint['desc']) && !empty($endpoint['desc']))
                            <small class="panel-subtitle text-muted">{{ $endpoint['desc'] }}</small>
                        @endif

                        <div class="panel-body">
                            <h3 class="m-t-0">Request</h3>

                            @if (isset($endpoint['method']) && !empty($endpoint['method']))
                                <div class="flex-row">
                                    <b>Method:</b>

                                    @if (is_array($endpoint['method']))
                                        @foreach($endpoint['method'] as $method)
                                            <span class="badge badge-{{ $method == 'GET' ? 'info' : 'success' }}">
                                                {{ $method }}
                                            </span>
                                        @endforeach
                                    @else
                                        <span class="badge badge-{{ $endpoint['method'] == 'GET' ? 'info' : 'success' }}">
                                            {{ $endpoint['method'] }}
                                        </span>
                                    @endif
                                </div>
                            @endif

                            @if (isset($endpoint['route']) && !empty($endpoint['route']))
                                <p><b>URL:</b> {{ $endpoint['route'] }}</p>
                            @endif

                            @if (isset($endpoint['headers']) && !empty($endpoint['headers']))
                                <p>
                                    <b>Headers: </b>
                                    <pre>{{ json_encode($endpoint['headers'], JSON_PRETTY_PRINT) }}</pre>
                                </p>
                            @endif

                            @if (isset($endpoint['parameters']) && !empty($endpoint['parameters']))
                                <p>
                                    <b>Parameters: </b>
                                <ul>
                                    @foreach ($endpoint['parameters'] as $parameter)
                                        <li>
                                            <b>{{ $parameter['name'] }}</b>
                                            {{ $parameter['desc'] ?? '' }}
                                        </li>
                                    @endforeach
                                </ul>
                                </p>
                            @endif

                            @if (isset($endpoint['body']) && !empty($endpoint['body']))
                                <p>
                                    <b>Body: </b>
                                    <pre>{{ json_encode($endpoint['body'], JSON_PRETTY_PRINT) }}</pre>
                                </p>
                            @endif

                            @if (isset($endpoint['response']) && !empty($endpoint['response']))
                                <hr>
                                <h3 class="m-t-0">Response</h3>

                                @foreach ($endpoint['response'] as $responseCode => $response)

                                    <div class="flex-row">
                                        <b>Code:</b>
                                        <span class="badge badge-{{ $responseCode == '200' ? 'success' : 'danger' }}">
                                            {{ $responseCode }}
                                        </span>
                                    </div>

                                    @if (isset($response['headers']) && !empty($response['headers']))

                                        <p>
                                            <b>Headers: </b>
                                            <pre>{{ json_encode($response['headers'], JSON_PRETTY_PRINT) }}</pre>
                                        </p>
                                    @endif

                                    @if (isset($response['body']) && !empty($response['body']))
                                        <p>
                                            <b>Body: </b>
                                            <pre><code>{{ json_encode($response['body'], JSON_PRETTY_PRINT) }}</code></pre>
                                        </p>
                                    @endif

                                    <p>&nbsp;</p>
                                @endforeach
                            @endif

                            {{--@if (isset($endpoint['sample_call']) && !empty($endpoint['sample_call']))--}}
                                {{--<hr>--}}
                                {{--<h3 class="m-t-0">Sample call</h3>--}}
                                {{--<pre>{{ $endpoint['sample_call'] }}</pre>--}}
                            {{--@endif--}}
                        </div>
                    </div>
                    @endforeach

                @endif

            @endforeach

        </div>

    </div>
@endsection

@section('scripts')
    <script>
        $(document).ready(function () {
            $('.api-link-item').on('click', function (e) {
                e.preventDefault();

                if (!$(this).hasClass('active')) {
                    var active = $('.api-link-item.active');
                    active.removeClass('active');
                    $(active.attr('href')).addClass('hidden');

                    $(this).addClass('active');
                    $($(this).attr('href')).removeClass('hidden');
                }
            });
        });
    </script>
@endsection