Skip to content

Commit f9f48c8

Browse files
author
Nicolas Perraut
authored
Allow extending RouteProvider to customize route prefix (#54)
1 parent 65b46a5 commit f9f48c8

File tree

1 file changed

+24
-18
lines changed

1 file changed

+24
-18
lines changed

src/RouteProvider.php

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ public static function routes(array $options = [])
1717
{
1818

1919
if (!isset($options['public_routes']) || $options['public_routes'] === true) {
20-
self::publicRoutes($options);
20+
static::publicRoutes($options);
2121
}
2222

23-
Route::prefix(self::$prefix)->group(
23+
Route::prefix(static::$prefix)->group(
2424
function () use ($options) {
2525
Route::prefix('v2')->middleware(
2626
[
@@ -30,10 +30,10 @@ function () use ($options) {
3030
]
3131
)->group(
3232
function () use ($options) {
33-
self::allRoutes($options);
33+
static::allRoutes($options);
3434
}
3535
);
36-
36+
3737
Route::get('v1', '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ResourceController@wrongVersion');
3838
Route::prefix('v1')->group(
3939
function () {
@@ -46,40 +46,46 @@ function () {
4646

4747
public static function meRoutes(array $options = [])
4848
{
49-
Route::get('/scim/v2/Me', '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\MeController@getMe')->name('scim.me.get');
50-
Route::put('/scim/v2/Me', '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\MeController@replaceMe')->name('scim.me.put');
49+
Route::prefix(static::$prefix)->group(function () {
50+
Route::get("/v2/Me", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\MeController@getMe')->name('scim.me.get');
51+
Route::put('/v2/Me', '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\MeController@replaceMe')->name('scim.me.put');
52+
});
5153
}
5254

5355
public static function meRoutePost(array $options = [])
5456
{
55-
Route::post('/scim/v2/Me', '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\MeController@createMe')->name('scim.me.post');
57+
Route::prefix(static::$prefix)->group(function () {
58+
Route::post('/v2/Me', '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\MeController@createMe')->name('scim.me.post');
59+
});
5660
}
5761

5862
public static function publicRoutes(array $options = [])
5963
{
60-
Route::get("/scim/v2/ServiceProviderConfig", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ServiceProviderController@index')->name('scim.serviceproviderconfig');
61-
62-
Route::get("/scim/v2/Schemas", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\SchemaController@index');
63-
Route::get("/scim/v2/Schemas/{id}", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\SchemaController@show')->name('scim.schemas');
64-
65-
Route::get("/scim/v2/ResourceTypes", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ResourceTypesController@index');
66-
Route::get("/scim/v2/ResourceTypes/{id}", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ResourceTypesController@show')->name('scim.resourcetype');
64+
Route::prefix(static::$prefix)->group(function () {
65+
Route::get("/v2/ServiceProviderConfig", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ServiceProviderController@index')->name('scim.serviceproviderconfig');
66+
67+
Route::get("/v2/Schemas", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\SchemaController@index');
68+
Route::get("/v2/Schemas/{id}", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\SchemaController@show')->name('scim.schemas');
69+
70+
Route::get("/v2/ResourceTypes", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ResourceTypesController@index');
71+
Route::get("/v2/ResourceTypes/{id}", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ResourceTypesController@show')->name('scim.resourcetype');
72+
});
6773
}
6874

6975
private static function allRoutes(array $options = [])
7076
{
7177
Route::post('.search', '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ResourceController@notImplemented');
72-
78+
7379
// TODO: Use the attributes parameters ?attributes=userName, excludedAttributes=asdg,asdg (respect "returned" settings "always")
7480
Route::get('/{resourceType}/{resourceObject}', '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ResourceController@show')->name('scim.resource');
7581
Route::get("/{resourceType}", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ResourceController@index')->name('scim.resources');
76-
82+
7783
Route::post("/{resourceType}", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ResourceController@create');
78-
84+
7985
Route::put("/{resourceType}/{resourceObject}", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ResourceController@replace');
8086
Route::patch("/{resourceType}/{resourceObject}", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ResourceController@update');
8187
Route::delete("/{resourceType}/{resourceObject}", '\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ResourceController@delete');
82-
88+
8389
Route::fallback('\ArieTimmerman\Laravel\SCIMServer\Http\Controllers\ResourceController@notImplemented');
8490
}
8591
}

0 commit comments

Comments
 (0)