Skip to content

Commit dcfca5b

Browse files
committed
FIXUP_APPLICATIONS
1 parent 2ad6a47 commit dcfca5b

File tree

8 files changed

+83
-51
lines changed

8 files changed

+83
-51
lines changed

crowd/Apis/ApplicationsApi.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ This endpoint does not need any parameter.
6262

6363
<a name="setApplications"></a>
6464
# **setApplications**
65-
> List setApplications(ApplicationModel)
65+
> List setApplications(request\_body)
6666
6767
Set a list of applications
6868

@@ -72,7 +72,7 @@ Set a list of applications
7272

7373
|Name | Type | Description | Notes |
7474
|------------- | ------------- | ------------- | -------------|
75-
| **ApplicationModel** | [**List**](../Models/ApplicationModel.md)| | [optional] |
75+
| **request\_body** | [**Map**](../Models/ApplicationModel.md)| | [optional] |
7676

7777
### Return type
7878

crowd/src/main/java/com/deftdevs/bootstrapi/crowd/rest/ApplicationResourceImpl.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import javax.inject.Inject;
1010
import javax.ws.rs.Path;
11-
import javax.ws.rs.core.Response;
1211

1312
@SystemAdminOnly
1413
@Path(BootstrAPI.APPLICATION)
@@ -24,28 +23,32 @@ public ApplicationResourceImpl(
2423
}
2524

2625
@Override
27-
public Response getApplication(
26+
public ApplicationModel getApplication(
2827
final long id) {
29-
return Response.ok(applicationsService.getApplication(id)).build();
28+
29+
return applicationsService.getApplication(id);
3030
}
3131

3232
@Override
33-
public Response updateApplication(
33+
public ApplicationModel updateApplication(
3434
final long id,
3535
final ApplicationModel applicationModel) {
36-
return Response.ok(applicationsService.setApplication(id, applicationModel)).build();
36+
37+
return applicationsService.setApplication(id, applicationModel);
3738
}
3839

3940
@Override
40-
public Response createApplication(
41+
public ApplicationModel createApplication(
4142
final ApplicationModel applicationModel) {
42-
return Response.ok(applicationsService.addApplication(applicationModel)).build();
43+
44+
return applicationsService.addApplication(applicationModel);
4345
}
4446

4547
@Override
46-
public Response deleteApplication(long id) {
48+
public void deleteApplication(
49+
final long id) {
50+
4751
applicationsService.deleteApplication(id);
48-
return Response.ok().build();
4952
}
5053

5154
}

crowd/src/main/java/com/deftdevs/bootstrapi/crowd/rest/ApplicationsResourceImpl.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import javax.ws.rs.Path;
1111
import javax.ws.rs.core.Response;
1212
import java.util.List;
13+
import java.util.Map;
1314

1415
@SystemAdminOnly
1516
@Path(BootstrAPI.APPLICATIONS)
@@ -25,20 +26,22 @@ public ApplicationsResourceImpl(
2526
}
2627

2728
@Override
28-
public Response getApplications() {
29-
return Response.ok(applicationsService.getApplications()).build();
29+
public Map<String, ApplicationModel> getApplications() {
30+
return applicationsService.getApplications();
3031
}
3132

3233
@Override
33-
public Response setApplications(
34-
final List<ApplicationModel> applicationModels) {
35-
return Response.ok(applicationsService.setApplications(applicationModels)).build();
34+
public Map<String, ApplicationModel> setApplications(
35+
final Map<String, ApplicationModel> applicationModels) {
36+
37+
return applicationsService.setApplications(applicationModels);
3638
}
3739

3840
@Override
39-
public Response deleteApplications(boolean force) {
41+
public void deleteApplications(
42+
final boolean force) {
43+
4044
applicationsService.deleteApplications(force);
41-
return Response.ok().build();
4245
}
4346

4447
}

crowd/src/main/java/com/deftdevs/bootstrapi/crowd/rest/api/ApplicationResource.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,15 @@
99
import io.swagger.v3.oas.annotations.media.Schema;
1010
import io.swagger.v3.oas.annotations.responses.ApiResponse;
1111

12-
import javax.ws.rs.*;
12+
import javax.ws.rs.Consumes;
13+
import javax.ws.rs.DELETE;
14+
import javax.ws.rs.GET;
15+
import javax.ws.rs.POST;
16+
import javax.ws.rs.PUT;
17+
import javax.ws.rs.Path;
18+
import javax.ws.rs.PathParam;
19+
import javax.ws.rs.Produces;
1320
import javax.ws.rs.core.MediaType;
14-
import javax.ws.rs.core.Response;
1521

1622
public interface ApplicationResource {
1723

@@ -33,7 +39,7 @@ public interface ApplicationResource {
3339
),
3440
}
3541
)
36-
Response getApplication(
42+
ApplicationModel getApplication(
3743
@PathParam("id") long id);
3844

3945
@POST
@@ -53,7 +59,7 @@ Response getApplication(
5359
),
5460
}
5561
)
56-
Response createApplication(
62+
ApplicationModel createApplication(
5763
ApplicationModel applicationModel);
5864

5965
@PUT
@@ -74,7 +80,7 @@ Response createApplication(
7480
),
7581
}
7682
)
77-
Response updateApplication(
83+
ApplicationModel updateApplication(
7884
@PathParam("id") long id,
7985
ApplicationModel applicationsModelModels);
8086

@@ -94,7 +100,7 @@ Response updateApplication(
94100
),
95101
}
96102
)
97-
Response deleteApplication(
103+
void deleteApplication(
98104
@PathParam("id") final long id);
99105

100106
}

crowd/src/main/java/com/deftdevs/bootstrapi/crowd/rest/api/ApplicationsResource.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@
99
import io.swagger.v3.oas.annotations.media.Schema;
1010
import io.swagger.v3.oas.annotations.responses.ApiResponse;
1111

12-
import javax.ws.rs.*;
12+
import javax.ws.rs.Consumes;
13+
import javax.ws.rs.DELETE;
14+
import javax.ws.rs.GET;
15+
import javax.ws.rs.PUT;
16+
import javax.ws.rs.Produces;
17+
import javax.ws.rs.QueryParam;
1318
import javax.ws.rs.core.MediaType;
14-
import javax.ws.rs.core.Response;
15-
import java.util.List;
19+
import java.util.Map;
1620

1721
public interface ApplicationsResource {
1822

@@ -33,7 +37,7 @@ public interface ApplicationsResource {
3337
),
3438
}
3539
)
36-
Response getApplications();
40+
Map<String, ApplicationModel> getApplications();
3741

3842
@PUT
3943
@Consumes(MediaType.APPLICATION_JSON)
@@ -53,8 +57,8 @@ public interface ApplicationsResource {
5357
),
5458
}
5559
)
56-
Response setApplications(
57-
List<ApplicationModel> applicationModels);
60+
Map<String, ApplicationModel> setApplications(
61+
Map<String, ApplicationModel> applicationModels);
5862

5963
@DELETE
6064
@Operation(
@@ -72,7 +76,7 @@ Response setApplications(
7276
),
7377
}
7478
)
75-
Response deleteApplications(
79+
void deleteApplications(
7680
@QueryParam("force") final boolean force);
7781

7882
}

crowd/src/main/java/com/deftdevs/bootstrapi/crowd/service/ApplicationsServiceImpl.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ public ApplicationsServiceImpl(
4040
}
4141

4242
@Override
43-
public List<ApplicationModel> getApplications() {
43+
public Map<String, ApplicationModel> getApplications() {
4444
return applicationManager.findAll().stream()
4545
.map(application -> ApplicationModelUtil.toApplicationModel(application, defaultGroupMembershipService))
46-
.collect(Collectors.toList());
46+
.collect(Collectors.toMap(ApplicationModel::getName, Function.identity()));
4747
}
4848

4949
@Override
@@ -58,17 +58,21 @@ public ApplicationModel getApplication(
5858
}
5959

6060
@Override
61-
public List<ApplicationModel> setApplications(
62-
final List<ApplicationModel> applicationModels) {
61+
public Map<String, ApplicationModel> setApplications(
62+
final Map<String, ApplicationModel> applicationModels) {
63+
64+
final Map<String, ApplicationModel> resultApplicationModels = new LinkedHashMap<>();
6365

64-
final List<ApplicationModel> resultApplicationModels = new ArrayList<>();
66+
for (Map.Entry<String, ApplicationModel> applicationModelEntry : applicationModels.entrySet()) {
67+
final ApplicationModel applicationModel = applicationModelEntry.getValue();
6568

66-
for (ApplicationModel applicationModel : applicationModels) {
6769
try {
68-
final Application application = applicationManager.findByName(applicationModel.getName());
69-
resultApplicationModels.add(setApplication(application.getId(), applicationModel));
70+
final Application application = applicationManager.findByName(applicationModelEntry.getKey());
71+
final ApplicationModel updatedApplicationModel = setApplication(application.getId(), applicationModel);
72+
resultApplicationModels.put(updatedApplicationModel.getName(), updatedApplicationModel);
7073
} catch (ApplicationNotFoundException ignored) {
71-
resultApplicationModels.add(addApplication(applicationModel));
74+
final ApplicationModel addedApplicationModel = addApplication(applicationModel);
75+
resultApplicationModels.put(addedApplicationModel.getName(), addedApplicationModel);
7276
}
7377
}
7478

crowd/src/main/java/com/deftdevs/bootstrapi/crowd/service/api/ApplicationsService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22

33
import com.deftdevs.bootstrapi.crowd.model.ApplicationModel;
44

5-
import java.util.List;
5+
import java.util.Map;
66

77
public interface ApplicationsService {
88

9-
List<ApplicationModel> getApplications();
9+
Map<String, ApplicationModel> getApplications();
1010

1111
ApplicationModel getApplication(
1212
long id);
1313

14-
List<ApplicationModel> setApplications(
15-
List<ApplicationModel> applicationModels);
14+
Map<String, ApplicationModel> setApplications(
15+
Map<String, ApplicationModel> applicationModels);
1616

1717
ApplicationModel setApplication(
1818
long id,

crowd/src/test/java/com/deftdevs/bootstrapi/crowd/service/ApplicationsServiceTest.java

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,27 @@
2525
import org.mockito.junit.jupiter.MockitoExtension;
2626

2727
import java.util.ArrayList;
28-
import java.util.Arrays;
2928
import java.util.Collections;
3029
import java.util.List;
30+
import java.util.Map;
31+
import java.util.function.Function;
32+
import java.util.stream.Collectors;
33+
import java.util.stream.Stream;
3134

3235
import static com.deftdevs.bootstrapi.crowd.model.ApplicationModel.EXAMPLE_1;
3336
import static com.deftdevs.bootstrapi.crowd.model.ApplicationModel.EXAMPLE_2;
3437
import static com.deftdevs.bootstrapi.crowd.model.util.ApplicationModelUtil.toApplication;
3538
import static com.deftdevs.bootstrapi.crowd.model.util.ApplicationModelUtil.toStringCollection;
36-
import static org.junit.jupiter.api.Assertions.*;
37-
import static org.mockito.Mockito.*;
39+
import static org.junit.jupiter.api.Assertions.assertEquals;
40+
import static org.junit.jupiter.api.Assertions.assertNotNull;
41+
import static org.junit.jupiter.api.Assertions.assertThrows;
42+
import static org.mockito.Mockito.any;
43+
import static org.mockito.Mockito.anyLong;
44+
import static org.mockito.Mockito.doReturn;
45+
import static org.mockito.Mockito.doThrow;
46+
import static org.mockito.Mockito.lenient;
47+
import static org.mockito.Mockito.spy;
48+
import static org.mockito.Mockito.verify;
3849

3950
@ExtendWith(MockitoExtension.class)
4051
public class ApplicationsServiceTest {
@@ -78,11 +89,11 @@ public void testGetApplications() {
7889
final List<Application> applications = Collections.singletonList(application);
7990
doReturn(applications).when(applicationManager).findAll();
8091

81-
final List<ApplicationModel> applicationModels = applicationsService.getApplications();
92+
final Map<String, ApplicationModel> applicationModels = applicationsService.getApplications();
8293
assertNotNull(applicationModels);
8394
assertEquals(1, applicationModels.size());
8495

85-
final ApplicationModel resultApplicationModel = applicationModels.iterator().next();
96+
final ApplicationModel resultApplicationModel = applicationModels.values().iterator().next();
8697
assertEquals(EXAMPLE_1.getName(), resultApplicationModel.getName());
8798
assertEquals(EXAMPLE_1.getDescription(), resultApplicationModel.getDescription());
8899
assertEquals(EXAMPLE_1.getActive(), resultApplicationModel.getActive());
@@ -190,15 +201,16 @@ public void testSetApplications() throws ApplicationNotFoundException {
190201
final Application applicationExample1 = ImmutableApplication.builder(toApplication(EXAMPLE_1))
191202
.setId(EXAMPLE_1.getId())
192203
.build();
193-
final List<ApplicationModel> applicationModels = Arrays.asList(EXAMPLE_1, EXAMPLE_2);
204+
final Map<String, ApplicationModel> applicationModels = Stream.of(EXAMPLE_1, EXAMPLE_2)
205+
.collect(Collectors.toMap(ApplicationModel::getName, Function.identity()));
194206
doReturn(applicationExample1).when(applicationManager).findByName(EXAMPLE_1.getName());
195207
doThrow(new ApplicationNotFoundException("")).when(applicationManager).findByName(EXAMPLE_2.getName());
196208

197209
final ApplicationsServiceImpl spy = spy(applicationsService);
198210
doReturn(EXAMPLE_1).when(spy).setApplication(EXAMPLE_1.getId(), EXAMPLE_1);
199211
doReturn(EXAMPLE_2).when(spy).addApplication(EXAMPLE_2);
200212

201-
final List<ApplicationModel> responseApplicationModels = spy.setApplications(applicationModels);
213+
final Map<String, ApplicationModel> responseApplicationModels = spy.setApplications(applicationModels);
202214
verify(spy).setApplication(EXAMPLE_1.getId(), EXAMPLE_1);
203215
verify(spy).addApplication(EXAMPLE_2);
204216
assertEquals(applicationModels.size(), responseApplicationModels.size());

0 commit comments

Comments
 (0)