Skimia\ApiFusion
  • Namespace
  • Class
  • Tree
  • Todo
  • Download

Namespaces

  • PHP
  • Skimia
    • ApiFusion
      • Annotations
        • ApiRouting
          • Annotations
      • Auth
      • Console
        • Commands
      • Domain
        • Contracts
        • Exceptions
        • Traits
        • Users
        • Validation
      • Facade
      • Http
        • Controllers
          • Api
      • Routing

Classes

  • Skimia\ApiFusion\Annotations\ApiRouting\Annotations\ApiEndpoint
  • Skimia\ApiFusion\Annotations\ApiRouting\Annotations\ApiResource
  • Skimia\ApiFusion\Annotations\ApiRouting\ApiRoutingAnnotationsServiceProvider
  • Skimia\ApiFusion\Annotations\ApiRouting\Scanner
  • Skimia\ApiFusion\ApiFusionServiceProvider
  • Skimia\ApiFusion\Auth\Sentinel
  • Skimia\ApiFusion\Auth\User
  • Skimia\ApiFusion\Console\Commands\GenerateDomainApi
  • Skimia\ApiFusion\Domain\ResourceService
  • Skimia\ApiFusion\Domain\ResourceServiceModel
  • Skimia\ApiFusion\Domain\Users\EloquentServiceUserAdapter
  • Skimia\ApiFusion\Domain\Users\SentinelServiceUserAdapter
  • Skimia\ApiFusion\Domain\Validation\Bindings
  • Skimia\ApiFusion\Domain\Validation\Validator
  • Skimia\ApiFusion\Facade\RouteFusion
  • Skimia\ApiFusion\Http\Controllers\Api\ApiController
  • Skimia\ApiFusion\Http\Controllers\Api\ResourceServiceController
  • Skimia\ApiFusion\Http\Controllers\Api\SentinelSessionsController
  • Skimia\ApiFusion\Routing\RouteFusion

Interfaces

  • Skimia\ApiFusion\Domain\Contracts\InputValidatorContract
  • Skimia\ApiFusion\Domain\Contracts\ResourceServiceModelContract
  • Skimia\ApiFusion\Domain\Contracts\ServiceUserContract

Traits

  • Skimia\ApiFusion\Domain\Traits\CheckableTrait

Exceptions

  • Exception
  • Skimia\ApiFusion\Domain\Exceptions\AuthorisationException
  • Skimia\ApiFusion\Domain\Exceptions\DomainException
  • Skimia\ApiFusion\Domain\Exceptions\RequiredInputValidatorException
  • Skimia\ApiFusion\Domain\Exceptions\ValidationException
 1 <?php
 2 
 3 namespace Skimia\ApiFusion\Routing;
 4 
 5 use Illuminate\Foundation\Application;
 6 use Illuminate\Http\Request;
 7 use Dingo\Api\Http\Parser\Accept;
 8 use Response;
 9 use APIRoute;
10 use Skimia\ApiFusion\Http\Controllers\Api\SentinelSessionsController;
11 
12 class RouteFusion
13 {
14     /**
15      * @var Application
16      */
17     protected $app;
18 
19     /**
20      * @param Application $application
21      */
22     public function __construct(Application $application)
23     {
24         $this->app = $application;
25     }
26 
27     public function apiIndexListing($api, $url = '/', $name = 'api-fusion.index')
28     {
29         $api->get($url, ['as' => $name, function (Request $request) {
30 
31             $accept = $this->getCurrentAcceptHeader($request);
32 
33             $routes = APIRoute::getRoutes($accept['version']);
34             $endpoints = [];
35             foreach ($routes as $route) {
36                 $endpoints['endpoints'][] =
37                     [
38                         'path' => $route->getPath(),
39                         'methods' => $route->getMethods(),
40                     ];
41             }
42 
43             return Response::make($endpoints, 200, [], ['options' => JSON_PRETTY_PRINT]);
44         }]);
45     }
46 
47     public function apiLoginHTTP($api)
48     {
49         $sessions_class = SentinelSessionsController::class;
50         $api->post('login', $sessions_class.'@store');
51         $api->get('user', $sessions_class.'@user');
52 
53         $api->get('sessions', $sessions_class.'@index');
54         $api->get('sessions/kill', $sessions_class.'@kill');
55         $api->get('sessions/kill/all', $sessions_class.'@killAll');
56         $api->get('sessions/kill/{code}', $sessions_class.'@killByCode');
57     }
58 
59     public function apiLoginJWT($api)
60     {
61         $sessions_class = SentinelSessionsController::class;
62         $api->post('login', $sessions_class.'@storeToken');
63         $api->get('user', $sessions_class.'@user');
64 
65         $api->get('sessions', $sessions_class.'@index');
66         $api->get('sessions/kill', $sessions_class.'@kill');
67         $api->get('sessions/kill/all', $sessions_class.'@killAll');
68         $api->get('sessions/kill/{code}', $sessions_class.'@killByCode');
69     }
70 
71     public function getCurrentAcceptHeader($request = null)
72     {
73         if (! isset($request)) {
74             $request = Request::instance();
75         }
76 
77         $config = $this->app['config']['api'];
78 
79         $acceptClass = new Accept($config['standardsTree'], $config['subtype'], $config['version'], $config['defaultFormat']);
80 
81         return $acceptClass->parse($request);
82     }
83 }
84 
Skimia\ApiFusion API documentation generated by ApiGen