1
+ <?php
2
+
3
+ /** @var $router \Illuminate\Routing\Router */
4
+
5
+ // public route configuration
6
+ $ router ->group (['prefix ' => config ('json-api.routes.public-route.prefix ' ), 'middleware ' => 'api ' , 'namespace ' => '' ],
7
+ function (\Illuminate \Routing \Router $ router ) {
8
+
9
+ $ router ->group (['prefix ' => 'v{version} ' ], function (\Illuminate \Routing \Router $ router ) {
10
+
11
+ $ router ->get ('/{resource} ' , [
12
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@collection ' ,
13
+ 'as ' => 'api.resource ' ,
14
+ ])->where (['resource ' => '[a-z\-]+ ' ]);
15
+
16
+ $ router ->post ('/{resource} ' , [
17
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@create ' ,
18
+ ]);
19
+
20
+ $ router ->get ('/{resource}/{id} ' , [
21
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@item ' ,
22
+ 'as ' => 'api.resource.item ' ,
23
+ ])->where (['resource ' => '[a-z\-]+ ' ]);
24
+
25
+ $ router ->patch ('/{resource}/{id} ' , [
26
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@patch ' ,
27
+ ]);
28
+
29
+ $ router ->delete ('/{resource}/{id} ' , [
30
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@delete ' ,
31
+ ]);
32
+
33
+ $ router ->get ('/{resource}/{id}/relationships/{relationship} ' , [
34
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@relatedCollection ' ,
35
+ 'as ' => 'api.resource.relationship ' ,
36
+ ])->where (['resource ' => '[a-z\-]+ ' , 'relationship ' => '[a-z\-]+ ' ]);
37
+
38
+ $ router ->post ('/{resource}/{id}/relationships/{relationship} ' , [
39
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@relatedPost ' ,
40
+ ])->where (['resource ' => '[a-z\-]+ ' , 'relationship ' => '[a-z\-]+ ' ]);
41
+
42
+ $ router ->patch ('/{resource}/{id}/relationships/{relationship} ' , [
43
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@relatedPatch ' ,
44
+ ])->where (['resource ' => '[a-z\-]+ ' , 'relationship ' => '[a-z\-]+ ' ]);
45
+
46
+ $ router ->get ('/{resource}/{id}/relationships/{relationship}/{parameter} ' , [
47
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@relatedItem ' ,
48
+ 'as ' => 'api.resource.relationship.item ' ,
49
+ ])->where (['resource ' => '[a-z\-]+ ' , 'relationship ' => '[a-z\-]+ ' ]);
50
+
51
+ $ router ->delete ('/{resource}/{id}/relationships/{relationship} ' , [
52
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@relatedDelete ' ,
53
+ ])->where (['resource ' => '[a-z\-]+ ' , 'relationship ' => '[a-z\-]+ ' ]);
54
+
55
+ $ router ->delete ('/{resource}/{id}/relationships/{relationship}/{parameter} ' , [
56
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@relatedItemDelete ' ,
57
+ ])->where (['resource ' => '[a-z\-]+ ' , 'relationship ' => '[a-z\-]+ ' ]);
58
+ });
59
+ });
60
+
61
+ // secure route configuration
62
+ $ router ->group ([
63
+ 'prefix ' => config ('json-api.routes.secure-route.prefix ' ),
64
+ 'middleware ' => 'secure-api ' ,
65
+ 'namespace ' => ''
66
+ ], function (\Illuminate \Routing \Router $ router ) {
67
+
68
+ $ router ->group (['prefix ' => 'v{version} ' ], function (\Illuminate \Routing \Router $ router ) {
69
+
70
+ $ router ->post ('/tokens/refresh ' , [
71
+ 'middleware ' => 'jwt.refresh ' ,
72
+ 'as ' => 'token.refresh ' ,
73
+ 'uses ' => function () {
74
+ return response ()->json ([], 201 , [
75
+ 'Access-Control-Expose-Headers ' => 'Authorization '
76
+ ]);
77
+ }
78
+ ]);
79
+
80
+ $ router ->get ('/{resource} ' , [
81
+ 'uses ' => config ('json-api.routes.secure-route.controller ' ) . '@collection ' ,
82
+ 'as ' => 'secure-api.resource ' ,
83
+ 'middleware ' => config ('json-api.routes.secure-route.middleware ' , 'jwt.auth ' ),
84
+ ])->where (['resource ' => '[a-z\-]+ ' ]);
85
+
86
+ $ router ->post ('/{resource} ' , [
87
+ 'uses ' => config ('json-api.routes.secure-route.controller ' ) . '@create ' ,
88
+ 'middleware ' => config ('json-api.routes.secure-route.middleware ' , 'jwt.auth ' ),
89
+ ])->where (['resource ' => '[a-z\-]+ ' ]);
90
+
91
+ $ router ->get ('/{resource}/{id} ' , [
92
+ 'uses ' => config ('json-api.routes.secure-route.controller ' ) . '@item ' ,
93
+ 'as ' => 'secure-api.resource.item ' ,
94
+ 'middleware ' => config ('json-api.routes.secure-route.middleware ' , 'jwt.auth ' ),
95
+ ])->where (['resource ' => '[a-z\-]+ ' ]);
96
+
97
+ $ router ->patch ('/{resource}/{id} ' , [
98
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@patch ' ,
99
+ 'middleware ' => config ('json-api.routes.secure-route.middleware ' , 'jwt.auth ' ),
100
+ ]);
101
+
102
+ $ router ->delete ('/{resource}/{id} ' , [
103
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@delete ' ,
104
+ 'middleware ' => config ('json-api.routes.secure-route.middleware ' , 'jwt.auth ' ),
105
+ ]);
106
+
107
+ $ router ->get ('/{resource}/{id}/relationships/{relationship} ' , [
108
+ 'uses ' => config ('json-api.routes.secure-route.controller ' ) . '@relatedCollection ' ,
109
+ 'as ' => 'secure-api.resource.relationship ' ,
110
+ 'middleware ' => config ('json-api.routes.secure-route.middleware ' , 'jwt.auth ' ),
111
+ ])->where (['resource ' => '[a-z\-]+ ' , 'relationship ' => '[a-z\-]+ ' ]);
112
+
113
+ $ router ->post ('/{resource}/{id}/relationships/{relationship} ' , [
114
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@relatedPost ' ,
115
+ 'middleware ' => config ('json-api.routes.secure-route.middleware ' , 'jwt.auth ' ),
116
+ ])->where (['resource ' => '[a-z\-]+ ' , 'relationship ' => '[a-z\-]+ ' ]);
117
+
118
+ $ router ->patch ('/{resource}/{id}/relationships/{relationship} ' , [
119
+ 'uses ' => config ('json-api.routes.public-route.controller ' ) . '@relatedPatch ' ,
120
+ 'middleware ' => config ('json-api.routes.secure-route.middleware ' , 'jwt.auth ' ),
121
+ ])->where (['resource ' => '[a-z\-]+ ' , 'relationship ' => '[a-z\-]+ ' ]);
122
+
123
+ $ router ->get ('/{resource}/{id}/relationships/{relationship}/{parameter} ' , [
124
+ 'uses ' => config ('json-api.routes.secure-route.controller ' ) . '@relatedItem ' ,
125
+ 'as ' => 'secure-api.resource.relationship.item ' ,
126
+ 'middleware ' => config ('json-api.routes.secure-route.middleware ' , 'jwt.auth ' ),
127
+ ])->where (['resource ' => '[a-z\-]+ ' , 'relationship ' => '[a-z\-]+ ' ]);
128
+
129
+ $ router ->delete ('/{resource}/{id}/relationships/{relationship} ' , [
130
+ 'uses ' => config ('json-api.routes.secure-route.controller ' ) . '@relatedDelete ' ,
131
+ 'middleware ' => config ('json-api.routes.secure-route.middleware ' , 'jwt.auth ' ),
132
+ ])->where (['resource ' => '[a-z\-]+ ' , 'relationship ' => '[a-z\-]+ ' ]);
133
+
134
+ $ router ->delete ('/{resource}/{id}/relationships/{relationship}/{parameter} ' , [
135
+ 'uses ' => config ('json-api.routes.secure-route.controller ' ) . '@relatedItemDelete ' ,
136
+ 'middleware ' => config ('json-api.routes.secure-route.middleware ' , 'jwt.auth ' ),
137
+ ])->where (['resource ' => '[a-z\-]+ ' , 'relationship ' => '[a-z\-]+ ' ]);
138
+ });
139
+ });
0 commit comments