Skip to content

Commit 7757b96

Browse files
committed
new: added OpenAPI descriptions and information to all endpoints
1 parent af01df0 commit 7757b96

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1966
-513
lines changed

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@
1515
import static org.lowcoder.sdk.util.ExceptionUtils.ofError;
1616

1717
import java.time.Instant;
18-
import java.util.*;
18+
import java.util.HashSet;
19+
import java.util.List;
20+
import java.util.Map;
21+
import java.util.Set;
1922
import java.util.stream.Collectors;
2023

2124
import javax.annotation.Nonnull;
@@ -24,7 +27,7 @@
2427
import org.apache.commons.collections4.CollectionUtils;
2528
import org.apache.commons.collections4.SetUtils;
2629
import org.apache.commons.lang3.StringUtils;
27-
import org.lowcoder.api.application.ApplicationController.CreateApplicationRequest;
30+
import org.lowcoder.api.application.ApplicationEndpoints.CreateApplicationRequest;
2831
import org.lowcoder.api.application.view.ApplicationInfoView;
2932
import org.lowcoder.api.application.view.ApplicationPermissionView;
3033
import org.lowcoder.api.application.view.ApplicationView;

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java

Lines changed: 23 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,7 @@
1111
import static org.lowcoder.sdk.util.ExceptionUtils.ofError;
1212

1313
import java.util.List;
14-
import java.util.Map;
15-
import java.util.Set;
1614

17-
import javax.annotation.Nullable;
18-
19-
import org.apache.commons.lang3.BooleanUtils;
2015
import org.lowcoder.api.application.view.ApplicationInfoView;
2116
import org.lowcoder.api.application.view.ApplicationPermissionView;
2217
import org.lowcoder.api.application.view.ApplicationView;
@@ -28,116 +23,101 @@
2823
import org.lowcoder.domain.application.model.ApplicationStatus;
2924
import org.lowcoder.domain.application.model.ApplicationType;
3025
import org.lowcoder.domain.permission.model.ResourceRole;
31-
import org.lowcoder.infra.constant.NewUrl;
32-
import org.lowcoder.infra.constant.Url;
33-
import org.springframework.beans.factory.annotation.Autowired;
34-
import org.springframework.web.bind.annotation.DeleteMapping;
35-
import org.springframework.web.bind.annotation.GetMapping;
3626
import org.springframework.web.bind.annotation.PathVariable;
37-
import org.springframework.web.bind.annotation.PostMapping;
38-
import org.springframework.web.bind.annotation.PutMapping;
3927
import org.springframework.web.bind.annotation.RequestBody;
40-
import org.springframework.web.bind.annotation.RequestMapping;
4128
import org.springframework.web.bind.annotation.RequestParam;
4229
import org.springframework.web.bind.annotation.RestController;
4330

44-
import com.fasterxml.jackson.annotation.JsonProperty;
45-
46-
import lombok.extern.slf4j.Slf4j;
31+
import lombok.RequiredArgsConstructor;
4732
import reactor.core.publisher.Mono;
4833

49-
@Slf4j
34+
@RequiredArgsConstructor
5035
@RestController
51-
@RequestMapping(value = {Url.APPLICATION_URL, NewUrl.APPLICATION_URL})
52-
public class ApplicationController {
53-
54-
@Autowired
55-
private UserHomeApiService userHomeApiService;
36+
public class ApplicationController implements ApplicationEndpoints {
5637

57-
@Autowired
58-
private ApplicationApiService applicationApiService;
59-
@Autowired
60-
private BusinessEventPublisher businessEventPublisher;
38+
private final UserHomeApiService userHomeApiService;
39+
private final ApplicationApiService applicationApiService;
40+
private final BusinessEventPublisher businessEventPublisher;
6141

62-
@PostMapping
42+
@Override
6343
public Mono<ResponseView<ApplicationView>> create(@RequestBody CreateApplicationRequest createApplicationRequest) {
6444
return applicationApiService.create(createApplicationRequest)
6545
.delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_CREATE))
6646
.map(ResponseView::success);
6747
}
6848

69-
@PostMapping("/createFromTemplate")
49+
@Override
7050
public Mono<ResponseView<ApplicationView>> createFromTemplate(@RequestParam String templateId) {
7151
return applicationApiService.createFromTemplate(templateId)
7252
.delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_CREATE))
7353
.map(ResponseView::success);
7454
}
7555

76-
@PutMapping("/recycle/{applicationId}")
56+
@Override
7757
public Mono<ResponseView<Boolean>> recycle(@PathVariable String applicationId) {
7858
return applicationApiService.recycle(applicationId)
7959
.delayUntil(__ -> businessEventPublisher.publishApplicationCommonEvent(applicationId, null, APPLICATION_RECYCLED))
8060
.map(ResponseView::success);
8161
}
8262

83-
@PutMapping("/restore/{applicationId}")
63+
@Override
8464
public Mono<ResponseView<Boolean>> restore(@PathVariable String applicationId) {
8565
return applicationApiService.restore(applicationId)
8666
.delayUntil(__ -> businessEventPublisher.publishApplicationCommonEvent(applicationId, null, APPLICATION_RESTORE))
8767
.map(ResponseView::success);
8868
}
8969

90-
@GetMapping("/recycle/list")
70+
@Override
9171
public Mono<ResponseView<List<ApplicationInfoView>>> getRecycledApplications() {
9272
return applicationApiService.getRecycledApplications()
9373
.collectList()
9474
.map(ResponseView::success);
9575
}
9676

97-
@DeleteMapping("/{applicationId}")
77+
@Override
9878
public Mono<ResponseView<ApplicationView>> delete(@PathVariable String applicationId) {
9979
return applicationApiService.delete(applicationId)
10080
.delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_DELETE))
10181
.map(ResponseView::success);
10282
}
10383

104-
@GetMapping("/{applicationId}")
84+
@Override
10585
public Mono<ResponseView<ApplicationView>> getEditingApplication(@PathVariable String applicationId) {
10686
return applicationApiService.getEditingApplication(applicationId)
10787
.delayUntil(__ -> applicationApiService.updateUserApplicationLastViewTime(applicationId))
10888
.map(ResponseView::success);
10989
}
11090

111-
@GetMapping("/{applicationId}/view")
91+
@Override
11292
public Mono<ResponseView<ApplicationView>> getPublishedApplication(@PathVariable String applicationId) {
11393
return applicationApiService.getPublishedApplication(applicationId)
11494
.delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(applicationId))
11595
.delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, VIEW))
11696
.map(ResponseView::success);
11797
}
11898

119-
@PutMapping("/{applicationId}")
99+
@Override
120100
public Mono<ResponseView<ApplicationView>> update(@PathVariable String applicationId,
121101
@RequestBody Application newApplication) {
122102
return applicationApiService.update(applicationId, newApplication)
123103
.delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_UPDATE))
124104
.map(ResponseView::success);
125105
}
126106

127-
@PostMapping("/{applicationId}/publish")
107+
@Override
128108
public Mono<ResponseView<ApplicationView>> publish(@PathVariable String applicationId) {
129109
return applicationApiService.publish(applicationId)
130110
.map(ResponseView::success);
131111
}
132112

133-
@GetMapping("/home")
113+
@Override
134114
public Mono<ResponseView<UserHomepageView>> getUserHomePage(@RequestParam(required = false, defaultValue = "0") int applicationType) {
135115
ApplicationType type = ApplicationType.fromValue(applicationType);
136116
return userHomeApiService.getUserHomePageView(type)
137117
.map(ResponseView::success);
138118
}
139119

140-
@GetMapping("/list")
120+
@Override
141121
public Mono<ResponseView<List<ApplicationInfoView>>> getApplications(@RequestParam(required = false) Integer applicationType,
142122
@RequestParam(required = false) ApplicationStatus applicationStatus,
143123
@RequestParam(defaultValue = "true") boolean withContainerSize) {
@@ -147,7 +127,7 @@ public Mono<ResponseView<List<ApplicationInfoView>>> getApplications(@RequestPar
147127
.map(ResponseView::success);
148128
}
149129

150-
@PutMapping("/{applicationId}/permissions/{permissionId}")
130+
@Override
151131
public Mono<ResponseView<Boolean>> updatePermission(@PathVariable String applicationId,
152132
@PathVariable String permissionId,
153133
@RequestBody UpdatePermissionRequest updatePermissionRequest) {
@@ -160,7 +140,7 @@ public Mono<ResponseView<Boolean>> updatePermission(@PathVariable String applica
160140
.map(ResponseView::success);
161141
}
162142

163-
@DeleteMapping("/{applicationId}/permissions/{permissionId}")
143+
@Override
164144
public Mono<ResponseView<Boolean>> removePermission(
165145
@PathVariable String applicationId,
166146
@PathVariable String permissionId) {
@@ -169,7 +149,7 @@ public Mono<ResponseView<Boolean>> removePermission(
169149
.map(ResponseView::success);
170150
}
171151

172-
@PutMapping("/{applicationId}/permissions")
152+
@Override
173153
public Mono<ResponseView<Boolean>> grantPermission(
174154
@PathVariable String applicationId,
175155
@RequestBody BatchAddPermissionRequest request) {
@@ -185,37 +165,16 @@ public Mono<ResponseView<Boolean>> grantPermission(
185165
}
186166

187167

188-
@GetMapping("/{applicationId}/permissions")
168+
@Override
189169
public Mono<ResponseView<ApplicationPermissionView>> getApplicationPermissions(@PathVariable String applicationId) {
190170
return applicationApiService.getApplicationPermissions(applicationId)
191171
.map(ResponseView::success);
192172
}
193173

194-
@PutMapping("/{applicationId}/public-to-all")
174+
@Override
195175
public Mono<ResponseView<Boolean>> setApplicationPublicToAll(@PathVariable String applicationId,
196176
@RequestBody ApplicationPublicToAllRequest request) {
197177
return applicationApiService.setApplicationPublicToAll(applicationId, request.publicToAll())
198178
.map(ResponseView::success);
199179
}
200-
201-
private record BatchAddPermissionRequest(String role, Set<String> userIds, Set<String> groupIds) {
202-
}
203-
204-
private record ApplicationPublicToAllRequest(Boolean publicToAll) {
205-
@Override
206-
public Boolean publicToAll() {
207-
return BooleanUtils.isTrue(publicToAll);
208-
}
209-
}
210-
211-
private record UpdatePermissionRequest(String role) {
212-
}
213-
214-
public record CreateApplicationRequest(@JsonProperty("orgId") String organizationId,
215-
String name,
216-
Integer applicationType,
217-
Map<String, Object> publishedApplicationDSL,
218-
Map<String, Object> editingApplicationDSL,
219-
@Nullable String folderId) {
220-
}
221180
}

0 commit comments

Comments
 (0)