blob: 35826b958ad47b449287175bf4ef756ed5471281 (
plain) (
tree)
|
|
<?php
namespace CamilStaps\BotleaguesApi;
use \Illuminate\Support\Facades\Request;
use \Illuminate\Support\ServiceProvider;
use \Illuminate\Support\Facades\App;
use \Illuminate\Support\Facades\Config;
#use \Dingo\Api\Facade\API;
use Redirect;
use Response;
class BotleaguesApiServiceProvider extends ServiceProvider {
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = false;
/**
* Bootstrap the application events.
*
* @return void
*/
public function boot()
{
#$this->package('camil-staps/botleagues-api', null, __DIR__.'/../..');
#$this->loadAutoloader(base_path('vendor'));
$this->loadViewsFrom(__DIR__ . '/../../views', 'botleagues-api');
$this->publishes([ __DIR__ . '/../../views' => base_path('resources/view/vendor/botleagues-api')], 'views');
$this->publishes([ __DIR__ . '/../../config/botleaguesapi.php' => config_path('botleaguesapi.php')], 'config');
include __DIR__ . '/../../filters.php';
$api = app('api.router');
include __DIR__ . '/../../routes.php';
// To allow loading API requests from the specified domain
$allowed_origin = config('botleaguesapi.allowed_origin');
if (is_array($allowed_origin)) {
$origin = Request::header('Origin');
if (in_array($origin, $allowed_origin)) {
header('Access-Control-Allow-Origin: ' . $origin);
} else {
header('Access-Control-Allow-Origin: ' . $allowed_origin[0]);
}
} else {
header('Access-Control-Allow-Origin: ' . $allowed_origin);
}
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
header('Access-Control-Allow-Headers: Authorization');
var_dump(true);
$this->setupErrorHandlers();
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
}
/**
* Get the services provided by the provider.
*
* @return array
*/
public function provides()
{
return array('CamilStaps\BotleaguesApi\BotleaguesApiServiceProvider');
}
/**
* Setup nice error handlers for exceptions and fatal errors
*/
private function setupErrorHandlers() {
// App::fatal(function($e) {
// return Response::make(
// ['error' => config('app.debug') ? $e->getMessage() : "Internal error"],
// 500);
// });
// API::error(function(\Illuminate\Database\Eloquent\ModelNotFoundException $e) {
// return Response::make(
// ['error' => 'Resource not found'],
// 404);
// });
// API::error(function(\Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException $e) {
// return Response::make(
// ['error' => !config('app.debug') || empty($e->getMessage()) ? 'Access denied' : $e->getMessage()],
// 404);
// });
// API::error(function(Exception\ValidationException $e) {
// return Response::make(
// [
// 'error' => $e->getMessage(),
// 'errors' => $e->errors
// ],
// 500);
// });
//
// API::error(function(\Exception $e) {
// return Response::make(
// ['error' => Config::get('app.debug') ? $e->getMessage() : "Internal error"],
// 500);
// });
}
}
|