Skip to content

Commit 2170a65

Browse files
ApiParser
1 parent a49dea2 commit 2170a65

File tree

3 files changed

+42
-27
lines changed

3 files changed

+42
-27
lines changed

ApiParser/ApiItem.php

+36-24
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ public static function parse($api) {
6767
$Resource = singular($Resources);
6868
$ResourceArray = $Resource.'[]';
6969

70+
$overrides = [
71+
'scope', 'ignore', 'summary', 'requestEntity', 'responseSchema'
72+
];
73+
7074
$getEndpoint = new EndpointItem();
7175
$getEndpoint->method = 'get';
7276
$getEndpoint->path = "/{$resources}";
@@ -80,9 +84,10 @@ public static function parse($api) {
8084
$getEndpoint->responseSchema = $ResourceArray;
8185
if(isset($name2Method['get'])) {
8286
$endpoint = EndpointItem::parse($name2Method['get']);
83-
if(isset($endpoint->scope)) $getEndpoint->scope = $endpoint->scope;
84-
if(isset($endpoint->ignore)) $getEndpoint->ignore = $endpoint->ignore;
85-
if(isset($endpoint->summary)) $getEndpoint->summary = $endpoint->summary;
87+
foreach($overrides as $override) {
88+
if(isset($endpoint->{$override}))
89+
$getEndpoint->{$override} = $endpoint->{$override};
90+
}
8691
}
8792
if(isset($item->scope) && !isset($getEndpoint->scope)) $getEndpoint->scope = $item->scope;
8893
if(!isset($getEndpoint->ignore)) $item->endpoints[] = $getEndpoint;
@@ -96,9 +101,10 @@ public static function parse($api) {
96101
$getByIdEndpoint->responseSchema = $Resource;
97102
if(isset($name2Method['get'])) {
98103
$endpoint = EndpointItem::parse($name2Method['get']);
99-
if(isset($endpoint->scope)) $getByIdEndpoint->scope = $endpoint->scope;
100-
if(isset($endpoint->ignore)) $getByIdEndpoint->ignore = $endpoint->ignore;
101-
if(isset($endpoint->summary)) $getByIdEndpoint->summary = $endpoint->summary;
104+
foreach($overrides as $override) {
105+
if(isset($endpoint->{$override}))
106+
$getByIdEndpoint->{$override} = $endpoint->{$override};
107+
}
102108
}
103109
if(isset($item->scope) && !isset($getByIdEndpoint->scope)) $getByIdEndpoint->scope = $item->scope;
104110
if(!isset($getByIdEndpoint->ignore)) $item->endpoints[] = $getByIdEndpoint;
@@ -111,9 +117,10 @@ public static function parse($api) {
111117
$postEndpoint->responseSchema = $Resource;
112118
if(isset($name2Method['post'])) {
113119
$endpoint = EndpointItem::parse($name2Method['post']);
114-
if(isset($endpoint->scope)) $postEndpoint->scope = $endpoint->scope;
115-
if(isset($endpoint->ignore)) $postEndpoint->ignore = $endpoint->ignore;
116-
if(isset($endpoint->summary)) $postEndpoint->summary = $endpoint->summary;
120+
foreach($overrides as $override) {
121+
if(isset($endpoint->{$override}))
122+
$postEndpoint->{$override} = $endpoint->{$override};
123+
}
117124
}
118125
if(isset($item->scope) && !isset($postEndpoint->scope)) $postEndpoint->scope = $item->scope;
119126
if(!isset($postEndpoint->ignore)) $item->endpoints[] = $postEndpoint;
@@ -127,9 +134,10 @@ public static function parse($api) {
127134
$putByIdEndpoint->responseSchema = $Resource;
128135
if(isset($name2Method['put'])) {
129136
$endpoint = EndpointItem::parse($name2Method['put']);
130-
if(isset($endpoint->scope)) $putByIdEndpoint->scope = $endpoint->scope;
131-
if(isset($endpoint->ignore)) $putByIdEndpoint->ignore = $endpoint->ignore;
132-
if(isset($endpoint->summary)) $putByIdEndpoint->summary = $endpoint->summary;
137+
foreach($overrides as $override) {
138+
if(isset($endpoint->{$override}))
139+
$putByIdEndpoint->{$override} = $endpoint->{$override};
140+
}
133141
}
134142
if(isset($item->scope) && !isset($putByIdEndpoint->scope)) $putByIdEndpoint->scope = $item->scope;
135143
if(!isset($putByIdEndpoint->ignore)) $item->endpoints[] = $putByIdEndpoint;
@@ -142,9 +150,10 @@ public static function parse($api) {
142150
$putEndpoint->responseSchema = $ResourceArray;
143151
if(isset($name2Method['put'])) {
144152
$endpoint = EndpointItem::parse($name2Method['put']);
145-
if(isset($endpoint->scope)) $putEndpoint->scope = $endpoint->scope;
146-
if(isset($endpoint->ignore)) $putEndpoint->ignore = $endpoint->ignore;
147-
if(isset($endpoint->summary)) $putEndpoint->summary = $endpoint->summary;
153+
foreach($overrides as $override) {
154+
if(isset($endpoint->{$override}))
155+
$putEndpoint->{$override} = $endpoint->{$override};
156+
}
148157
}
149158
if(isset($item->scope) && !isset($putEndpoint->scope)) $putEndpoint->scope = $item->scope;
150159
if(!isset($putEndpoint->ignore)) $item->endpoints[] = $putEndpoint;
@@ -158,9 +167,10 @@ public static function parse($api) {
158167
$patchByIdendpoint->responseSchema = $Resource;
159168
if(isset($name2Method['patch'])) {
160169
$endpoint = EndpointItem::parse($name2Method['patch']);
161-
if(isset($endpoint->scope)) $patchByIdendpoint->scope = $endpoint->scope;
162-
if(isset($endpoint->ignore)) $patchByIdendpoint->ignore = $endpoint->ignore;
163-
if(isset($endpoint->summary)) $patchByIdendpoint->summary = $endpoint->summary;
170+
foreach($overrides as $override) {
171+
if(isset($endpoint->{$override}))
172+
$patchByIdendpoint->{$override} = $endpoint->{$override};
173+
}
164174
}
165175
if(isset($item->scope) && !isset($patchByIdendpoint->scope)) $patchByIdendpoint->scope = $item->scope;
166176
if(!isset($patchByIdendpoint->ignore)) $item->endpoints[] = $patchByIdendpoint;
@@ -173,9 +183,10 @@ public static function parse($api) {
173183
$patchEndpoint->responseSchema = $ResourceArray;
174184
if(isset($name2Method['patch'])) {
175185
$endpoint = EndpointItem::parse($name2Method['patch']);
176-
if(isset($endpoint->scope)) $patchEndpoint->scope = $endpoint->scope;
177-
if(isset($endpoint->ignore)) $patchEndpoint->ignore = $endpoint->ignore;
178-
if(isset($endpoint->summary)) $patchEndpoint->summary = $endpoint->summary;
186+
foreach($overrides as $override) {
187+
if(isset($endpoint->{$override}))
188+
$patchEndpoint->{$override} = $endpoint->{$override};
189+
}
179190
}
180191
if(isset($item->scope) && !isset($patchEndpoint->scope)) $patchEndpoint->scope = $item->scope;
181192
if(!isset($patchEndpoint->ignore)) $item->endpoints[] = $patchEndpoint;
@@ -188,9 +199,10 @@ public static function parse($api) {
188199
$deleteEndpoint->responseSchema = $Resource;
189200
if(isset($name2Method['delete'])) {
190201
$endpoint = EndpointItem::parse($name2Method['delete']);
191-
if(isset($endpoint->scope)) $deleteEndpoint->scope = $endpoint->scope;
192-
if(isset($endpoint->ignore)) $deleteEndpoint->ignore = $endpoint->ignore;
193-
if(isset($endpoint->summary)) $deleteEndpoint->summary = $endpoint->summary;
202+
foreach($overrides as $override) {
203+
if(isset($endpoint->{$override}))
204+
$deleteEndpoint->{$override} = $endpoint->{$override};
205+
}
194206
}
195207
if(isset($item->scope) && !isset($deleteEndpoint->scope)) $deleteEndpoint->scope = $item->scope;
196208
if(!isset($deleteEndpoint->ignore)) $item->endpoints[] = $deleteEndpoint;

ErrorCodes.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
*/
88
class ErrorCodes {
99

10-
const InsufficientAccess = 'InsufficientAccess';
10+
const InsufficientAccess = 'InsufficientAccess';
11+
const ResourceNotFound = 'ResourceNotFound';
1112

12-
}
13+
}

ResourceControllerTrait.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,10 @@ public function delete($id) {
141141
$item = $model->find();
142142

143143
if($item->exists()) {
144-
if(!$model->isRestDeleteAllowed($item))
144+
if(!$model->isRestDeleteAllowed($item)) {
145145
$this->error(ErrorCodes::InsufficientAccess, 403);
146+
return;
147+
}
146148
$item->delete();
147149
}
148150

0 commit comments

Comments
 (0)