Skip to content

Commit ca196a9

Browse files
committed
create flow item service to handle loading list
1 parent 08c4d84 commit ca196a9

File tree

14 files changed

+153
-214
lines changed

14 files changed

+153
-214
lines changed

core/src/main/java/com/flowci/core/flow/controller/FlowController.java

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,15 @@
1717
package com.flowci.core.flow.controller;
1818

1919
import com.flowci.core.auth.annotation.Action;
20-
import com.flowci.core.flow.domain.ConfirmOption;
21-
import com.flowci.core.flow.domain.Flow;
22-
import com.flowci.core.flow.domain.Flow.Status;
23-
import com.flowci.core.flow.domain.FlowAction;
24-
import com.flowci.core.flow.domain.Template;
20+
import com.flowci.core.flow.domain.*;
21+
import com.flowci.core.flow.service.FlowGroupService;
22+
import com.flowci.core.flow.service.FlowItemService;
2523
import com.flowci.core.flow.service.FlowService;
2624
import com.flowci.core.user.domain.User;
2725
import com.flowci.core.user.service.UserService;
2826
import com.flowci.domain.SimpleAuthPair;
2927
import com.flowci.domain.SimpleKeyPair;
3028
import com.google.common.collect.Lists;
31-
import org.springframework.beans.factory.annotation.Autowired;
3229
import org.springframework.web.bind.annotation.*;
3330

3431
import java.util.List;
@@ -40,19 +37,32 @@
4037
@RequestMapping("/flows")
4138
public class FlowController {
4239

43-
@Autowired
44-
private List<Template> templates;
40+
private final List<Template> templates;
4541

46-
@Autowired
47-
private UserService userService;
42+
private final UserService userService;
4843

49-
@Autowired
50-
private FlowService flowService;
44+
private final FlowService flowService;
45+
46+
private final FlowGroupService flowGroupService;
47+
48+
private final FlowItemService flowItemService;
49+
50+
public FlowController(List<Template> templates,
51+
UserService userService,
52+
FlowService flowService,
53+
FlowGroupService flowGroupService,
54+
FlowItemService flowItemService) {
55+
this.templates = templates;
56+
this.userService = userService;
57+
this.flowService = flowService;
58+
this.flowGroupService = flowGroupService;
59+
this.flowItemService = flowItemService;
60+
}
5161

5262
@GetMapping
5363
@Action(FlowAction.LIST)
54-
public List<Flow> list() {
55-
return flowService.list(Status.CONFIRMED);
64+
public List<FlowItem> list() {
65+
return flowItemService.list();
5666
}
5767

5868
@GetMapping("/templates")
@@ -70,23 +80,13 @@ public Flow get(@PathVariable String name) {
7080
@GetMapping(value = "/{name}/exist")
7181
@Action(FlowAction.CHECK_NAME)
7282
public Boolean exist(@PathVariable String name) {
73-
return flowService.exist(name);
83+
return flowItemService.existed(name);
7484
}
7585

7686
@PostMapping(value = "/{name}")
7787
@Action(FlowAction.CREATE)
78-
public Flow create(@PathVariable String name,
79-
@RequestParam(required = false) String groupId) {
80-
if (groupId != null) {
81-
return flowService.create(name, groupId);
82-
}
83-
return flowService.create(name);
84-
}
85-
86-
@PostMapping(value = "/{name}/confirm")
87-
@Action(FlowAction.CONFIRM)
88-
public Flow confirm(@PathVariable String name, @RequestBody ConfirmOption option) {
89-
return flowService.confirm(name, option);
88+
public Flow create(@PathVariable String name, @RequestBody CreateOption option) {
89+
return flowService.create(name, option);
9090
}
9191

9292
@DeleteMapping("/{name}")

core/src/main/java/com/flowci/core/flow/controller/FlowGroupController.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88
import org.springframework.beans.factory.annotation.Autowired;
99
import org.springframework.web.bind.annotation.*;
1010

11-
import java.util.List;
12-
import java.util.Set;
13-
1411
@RestController
1512
@RequestMapping("/flow_groups")
1613
public class FlowGroupController {
@@ -30,12 +27,6 @@ public FlowGroup create(@PathVariable String name) {
3027
return flowGroupService.create(name);
3128
}
3229

33-
@PostMapping
34-
@Action(FlowAction.GROUP_READ)
35-
public List<FlowGroup> list(@RequestBody Set<String> ids) {
36-
return flowGroupService.list(ids);
37-
}
38-
3930
@PostMapping("/{groupName}/{flowName}")
4031
@Action(FlowAction.GROUP_UPDATE)
4132
public void addToGroup(@PathVariable String groupName, @PathVariable String flowName) {

core/src/main/java/com/flowci/core/flow/dao/FlowDao.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package com.flowci.core.flow.dao;
1818

1919
import com.flowci.core.flow.domain.Flow;
20-
import com.flowci.core.flow.domain.Flow.Status;
2120
import org.springframework.data.mongodb.repository.MongoRepository;
2221
import org.springframework.stereotype.Repository;
2322

@@ -33,11 +32,7 @@ public interface FlowDao extends MongoRepository<Flow, String> {
3332

3433
Optional<Flow> findByName(String name);
3534

36-
List<Flow> findAllByStatus(Status status);
37-
3835
List<Flow> findAllByParentId(String parentId);
3936

40-
List<Flow> findAllByStatusAndCreatedBy(Status status, String createdBy);
41-
42-
List<Flow> findAllByIdInAndStatus(Collection<String> id, Status status);
37+
List<Flow> findAllByIdIn(Collection<String> id);
4338
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.flowci.core.flow.dao;
2+
3+
import com.flowci.core.flow.domain.FlowItem;
4+
import org.springframework.data.mongodb.repository.MongoRepository;
5+
import org.springframework.stereotype.Repository;
6+
7+
import java.util.Collection;
8+
import java.util.List;
9+
10+
@Repository
11+
public interface FlowItemDao extends MongoRepository<FlowItem, String> {
12+
13+
List<FlowItem> findAllByIdInOrderByCreatedAt(Collection<String> ids);
14+
15+
boolean existsByName(String name);
16+
}

core/src/main/java/com/flowci/core/flow/domain/ConfirmOption.java renamed to core/src/main/java/com/flowci/core/flow/domain/CreateOption.java

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -26,42 +26,18 @@
2626
*/
2727
@Data
2828
@Accessors(chain = true)
29-
public class ConfirmOption {
29+
public class CreateOption {
3030

31-
private static final String BlankTitle = "_blank_";
31+
private String groupName;
3232

33-
private String gitUrl;
34-
35-
private String secret;
36-
37-
/**
38-
* Yaml in base64
39-
*/
40-
private String yaml = StringHelper.EMPTY;
41-
42-
/**
43-
* Template name (desc), yaml property will be ignored if it is defined
44-
*/
4533
@JsonProperty("title")
4634
private String templateTitle;
4735

48-
public boolean hasGitUrl() {
49-
return StringHelper.hasValue(gitUrl);
50-
}
51-
52-
public boolean hasSecret() {
53-
return StringHelper.hasValue(secret);
54-
}
55-
56-
public boolean hasYml() {
57-
return StringHelper.hasValue(yaml);
36+
public boolean hasGroupName() {
37+
return StringHelper.hasValue(groupName);
5838
}
5939

6040
public boolean hasTemplateTitle() {
6141
return StringHelper.hasValue(templateTitle);
6242
}
63-
64-
public boolean hasBlankTemplate() {
65-
return BlankTitle.equalsIgnoreCase(templateTitle);
66-
}
6743
}

core/src/main/java/com/flowci/core/flow/domain/Flow.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,12 @@
4444
public final class Flow extends FlowItem implements Pathable {
4545

4646
private static final Set<String> reservedFlowNames = ImmutableSet.<String>builder()
47+
.add("flow")
4748
.add("flows")
49+
.add("group")
50+
.add("groups")
51+
.add("template")
52+
.add("templates")
4853
.build();
4954

5055
public static Pathable path(String id) {
@@ -64,14 +69,6 @@ public static void validateName(String name) {
6469
}
6570
}
6671

67-
public enum Status {
68-
PENDING,
69-
70-
CONFIRMED
71-
}
72-
73-
private Status status = Status.PENDING;
74-
7572
private boolean isYamlFromRepo;
7673

7774
private String yamlRepoBranch = "master";

core/src/main/java/com/flowci/core/flow/domain/FlowAction.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ public abstract class FlowAction {
2727

2828
public static final String CHECK_NAME = "check_name";
2929

30-
public static final String CONFIRM = "confirm_flow";
31-
3230
public static final String UPDATE = "update_flow_settings";
3331

3432
public static final String DELETE = "delete_flow";
@@ -63,7 +61,6 @@ public abstract class FlowAction {
6361
public static final List<String> ALL = ImmutableList.of(
6462
CREATE,
6563
CHECK_NAME,
66-
CONFIRM,
6764
DELETE,
6865
UPDATE,
6966
LIST,

core/src/main/java/com/flowci/core/flow/domain/FlowItem.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@
99
import lombok.Getter;
1010
import lombok.Setter;
1111
import org.springframework.data.mongodb.core.index.Indexed;
12+
import org.springframework.data.mongodb.core.mapping.Document;
1213

1314
@Getter
1415
@Setter
1516
@EqualsAndHashCode(callSuper = true)
16-
public abstract class FlowItem extends Mongoable {
17+
@Document("flow")
18+
public class FlowItem extends Mongoable {
1719

1820
public enum Type {
1921
Flow,
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.flowci.core.flow.service;
2+
3+
import com.flowci.core.flow.domain.FlowItem;
4+
5+
import java.util.List;
6+
7+
/**
8+
* The service used to list all flow items that available for current user
9+
*/
10+
public interface FlowItemService {
11+
12+
List<FlowItem> list();
13+
14+
boolean existed(String name);
15+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.flowci.core.flow.service;
2+
3+
import com.flowci.core.common.manager.SessionManager;
4+
import com.flowci.core.flow.dao.FlowItemDao;
5+
import com.flowci.core.flow.dao.FlowUserDao;
6+
import com.flowci.core.flow.domain.FlowItem;
7+
import org.springframework.stereotype.Service;
8+
9+
import java.util.List;
10+
11+
@Service
12+
public class FlowItemServiceImpl implements FlowItemService {
13+
14+
private final FlowItemDao flowItemDao;
15+
16+
private final FlowUserDao flowUserDao;
17+
18+
private final SessionManager sessionManager;
19+
20+
public FlowItemServiceImpl(FlowItemDao flowItemDao, FlowUserDao flowUserDao, SessionManager sessionManager) {
21+
this.flowItemDao = flowItemDao;
22+
this.flowUserDao = flowUserDao;
23+
this.sessionManager = sessionManager;
24+
}
25+
26+
@Override
27+
public List<FlowItem> list() {
28+
var email = sessionManager.getUserEmail();
29+
List<String> flows = flowUserDao.findAllFlowsByUserEmail(email);
30+
return flowItemDao.findAllByIdInOrderByCreatedAt(flows);
31+
}
32+
33+
@Override
34+
public boolean existed(String name) {
35+
return flowItemDao.existsByName(name);
36+
}
37+
}

0 commit comments

Comments
 (0)