-
Notifications
You must be signed in to change notification settings - Fork 175
/
Copy pathroutes.php
83 lines (68 loc) · 2.96 KB
/
routes.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
Route::any(Config::get('swaggervel.doc-route').'/{page?}', function($page='api-docs.json') {
$filePath = Config::get('swaggervel.doc-dir') . "/{$page}";
if (File::extension($filePath) === "") {
$filePath .= ".json";
}
if (!File::Exists($filePath)) {
App::abort(404, "Cannot find {$filePath}");
}
$content = File::get($filePath);
return Response::make($content, 200, array(
'Content-Type' => 'application/json'
));
});
Route::get(Config::get('swaggervel.api-docs-route'), function() {
if (Config::get('swaggervel.generateAlways')) {
$appDir = base_path()."/".Config::get('swaggervel.app-dir');
$docDir = Config::get('swaggervel.doc-dir');
if (!File::exists($docDir) || is_writable($docDir)) {
// delete all existing documentation
if (File::exists($docDir)) {
File::deleteDirectory($docDir);
}
File::makeDirectory($docDir);
$defaultBasePath = Config::get('swaggervel.default-base-path');
$defaultApiVersion = Config::get('swaggervel.default-api-version');
$defaultSwaggerVersion = Config::get('swaggervel.default-swagger-version');
$excludeDirs = Config::get('swaggervel.excludes');
$swagger = \Swagger\scan($appDir, [
'exclude' => $excludeDirs
]);
$filename = $docDir . '/api-docs.json';
file_put_contents($filename, $swagger);
}
}
if (Config::get('swaggervel.behind-reverse-proxy')) {
$proxy = Request::server('REMOTE_ADDR');
Request::setTrustedProxies(array($proxy));
}
Blade::setEscapedContentTags('{{{', '}}}');
Blade::setContentTags('{{', '}}');
//need the / at the end to avoid CORS errors on Homestead systems.
$response = response()->view('swaggervel::index', array(
'secure' => Request::secure(),
'urlToDocs' => url(Config::get('swaggervel.doc-route')),
'requestHeaders' => Config::get('swaggervel.requestHeaders'),
'clientId' => Request::input("client_id"),
'clientSecret' => Request::input("client_secret"),
'realm' => Request::input("realm"),
'appName' => Request::input("appName"),
)
);
//need the / at the end to avoid CORS errors on Homestead systems.
/*$response = Response::make(
View::make('swaggervel::index', array(
'secure' => Request::secure(),
'urlToDocs' => url(Config::get('swaggervel.doc-route')),
'requestHeaders' => Config::get('swaggervel.requestHeaders') )
),
200
);*/
if (Config::has('swaggervel.viewHeaders')) {
foreach (Config::get('swaggervel.viewHeaders') as $key => $value) {
$response->header($key, $value);
}
}
return $response;
});