Skip to content

Commit 79e2bfb

Browse files
authored
Merge pull request #33 from knisht/master
Add endpoint 'pluginData'
2 parents 1715435 + c9de26a commit 79e2bfb

File tree

4 files changed

+39
-0
lines changed

4 files changed

+39
-0
lines changed

grails-app/controllers/appgenerator/UrlMappings.groovy

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ class UrlMappings {
77
"/validate"(controller: 'generator', action: 'validate')
88
"/$name(.zip)"(controller: 'generator', action: 'generateDefault')
99
"/appData"(controller: 'versions', action: 'appData')
10+
"/pluginData"(controller: 'versions', action: 'pluginData')
1011
"/versions"(controller: 'versions', action: 'grailsVersions')
1112
"/$version/profiles"(controller: 'profile', action: 'profiles')
1213
"/$version/$profile/features"(controller: 'profile', action: 'features')

grails-app/controllers/appgenerator/VersionsController.groovy

+6
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,10 @@ class VersionsController {
2222
[version: it, profiles: profileService.getProfiles(it)]
2323
}])
2424
}
25+
26+
def pluginData() {
27+
respond([pluginData: versionService.supportedVersions.collect {
28+
[version: it, profiles: profileService.getPluginProfiles(it)]
29+
}])
30+
}
2531
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import groovy.transform.Field
2+
3+
@Field List<Map> pluginData
4+
5+
json(pluginData) { Map m ->
6+
version m.version
7+
profiles tmpl."/profile/profile"(m.profiles)
8+
}

src/test/groovy/appgenerator/VersionsControllerSpec.groovy

+24
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,28 @@ class VersionsControllerSpec extends Specification implements ControllerUnitTest
5252
response.json[1].version == 'b'
5353
response.json[1].profiles.size() == 1
5454
}
55+
56+
void "test pluginData"() {
57+
given:
58+
controller.versionService = Mock(VersionService) {
59+
1 * getSupportedVersions() >> ["a", "b"]
60+
}
61+
def profile1 = new Profile()
62+
def profile2 = new Profile()
63+
controller.profileService = Mock(ProfileService) {
64+
1 * getPluginProfiles("a") >> [profile1]
65+
1 * getPluginProfiles("b") >> [profile2]
66+
}
67+
68+
when:
69+
webRequest.actionName = "pluginData"
70+
controller.pluginData()
71+
render()
72+
73+
then:
74+
response.json[0].version == 'a'
75+
response.json[0].profiles.size() == 1
76+
response.json[1].version == 'b'
77+
response.json[1].profiles.size() == 1
78+
}
5579
}

0 commit comments

Comments
 (0)