Skip to content

Commit b539393

Browse files
committed
Handled method overrides specified in the controller
(6)
1 parent 4c43e5c commit b539393

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

springfox-grails-contract-tests/grails-app/controllers/grails/springfox/sample/AlbumController.groovy

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package grails.springfox.sample
22

3-
4-
import grails.rest.*
5-
import grails.converters.*
3+
import grails.rest.RestfulController
64

75
class AlbumController extends RestfulController {
6+
static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]
87
static responseFormats = ['json', 'xml']
98
AlbumController() {
109
super(Album)

springfox-grails/src/main/java/springfox/documentation/grails/GrailsActionAttributes.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import java.util.Set;
1414
import java.util.stream.Collectors;
1515

16+
import static springfox.documentation.grails.Actions.*;
17+
1618
@Component
1719
class GrailsActionAttributes {
1820
private final LinkGenerator linkGenerator;
@@ -38,11 +40,15 @@ String actionUrl(GrailsActionContext context, Map<String, String> value) {
3840
}
3941

4042
Set<RequestMethod> httpMethod(GrailsActionContext context) {
41-
return Arrays.stream(urlMappings.getUrlMappings())
42-
.filter(mapping ->
43-
Objects.equals(mapping.getControllerName(), context.getController().getName())
44-
&& Objects.equals(mapping.getActionName(), context.getAction()))
45-
.map(mapping -> RequestMethod.valueOf(mapping.getHttpMethod()))
46-
.collect(Collectors.toSet());
43+
Set<RequestMethod> requestMethods = methodOverrides(context);
44+
if (requestMethods.isEmpty()) {
45+
return Arrays.stream(urlMappings.getUrlMappings())
46+
.filter(mapping ->
47+
Objects.equals(mapping.getControllerName(), context.getController().getName())
48+
&& Objects.equals(mapping.getActionName(), context.getAction()))
49+
.map(mapping -> RequestMethod.valueOf(mapping.getHttpMethod()))
50+
.collect(Collectors.toSet());
51+
}
52+
return requestMethods;
4753
}
4854
}

0 commit comments

Comments
 (0)