Skip to content

Commit

Permalink
Update
Browse files Browse the repository at this point in the history
  • Loading branch information
haiphucnguyen committed Dec 8, 2024
1 parent 84e2b8a commit 51e17ab
Show file tree
Hide file tree
Showing 10 changed files with 53 additions and 186 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@
import java.util.Optional;
import org.springframework.data.jpa.repository.EntityGraph;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

@Repository
public interface WorkflowRepository extends JpaRepository<Workflow, Long> {
public interface WorkflowRepository
extends JpaRepository<Workflow, Long>, JpaSpecificationExecutor<Workflow> {

@Query(
"""
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package io.flexwork.modules.teams.service;

import static io.flexwork.query.QueryUtils.createSpecification;

import io.flexwork.modules.teams.domain.Workflow;
import io.flexwork.modules.teams.domain.WorkflowState;
import io.flexwork.modules.teams.domain.WorkflowTransition;
Expand All @@ -11,9 +13,13 @@
import io.flexwork.modules.teams.service.mapper.WorkflowMapper;
import io.flexwork.modules.teams.service.mapper.WorkflowStateMapper;
import io.flexwork.modules.teams.service.mapper.WorkflowTransitionMapper;
import io.flexwork.query.QueryDTO;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

Expand Down Expand Up @@ -48,13 +54,8 @@ public WorkflowService(
}

@Transactional
public Workflow createWorkflow(Workflow workflow) {
return workflowRepository.save(workflow);
}

@Transactional(readOnly = true)
public List<Workflow> getAllWorkflows() {
return workflowRepository.findAll();
public WorkflowDTO createWorkflow(Workflow workflow) {
return workflowMapper.toDto(workflowRepository.save(workflow));
}

@Transactional(readOnly = true)
Expand All @@ -63,14 +64,13 @@ public Optional<Workflow> getWorkflowById(Long id) {
}

@Transactional
public Workflow updateWorkflow(Long id, Workflow updatedWorkflow) {
public WorkflowDTO updateWorkflow(Long id, WorkflowDTO updatedWorkflow) {
return workflowRepository
.findById(id)
.map(
existingWorkflow -> {
existingWorkflow.setName(updatedWorkflow.getName());
existingWorkflow.setDescription(updatedWorkflow.getDescription());
return workflowRepository.save(existingWorkflow);
workflowMapper.updateEntity(updatedWorkflow, existingWorkflow);
return workflowMapper.toDto(workflowRepository.save(existingWorkflow));
})
.orElseThrow(
() -> new IllegalArgumentException("Workflow not found with id: " + id));
Expand Down Expand Up @@ -100,7 +100,13 @@ public List<WorkflowDTO> getWorkflowsForTeam(Long teamId) {
public Optional<WorkflowDetailedDTO> getWorkflowDetail(Long workflowId) {
return workflowRepository
.findWithDetailsById(workflowId)
.map(workflowMapper::toDetailedDTO);
.map(workflowMapper::toDetailedDto);
}

@Transactional(readOnly = true)
public Page<WorkflowDTO> findWorkflows(Optional<QueryDTO> queryDTO, Pageable pageable) {
Specification<Workflow> spec = createSpecification(queryDTO);
return workflowRepository.findAll(spec, pageable).map(workflowMapper::toDto);
}

@Transactional
Expand Down Expand Up @@ -153,6 +159,6 @@ public WorkflowDetailedDTO saveWorkflow(WorkflowDetailedDTO dto) {
.collect(Collectors.toList());
workflowTransitionRepository.saveAll(transitions);

return workflowMapper.toDetailedDTO(workflow);
return workflowMapper.toDetailedDto(workflow);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import io.flexwork.modules.teams.service.dto.WorkflowDetailedDTO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.MappingTarget;

@Mapper(
componentModel = "spring",
Expand All @@ -18,5 +19,7 @@ public interface WorkflowMapper {

@Mapping(source = "owner.name", target = "ownerName")
@Mapping(source = "owner.id", target = "ownerId")
WorkflowDetailedDTO toDetailedDTO(Workflow workflow);
WorkflowDetailedDTO toDetailedDto(Workflow workflow);

Workflow updateEntity(WorkflowDTO workflowDTO, @MappingTarget Workflow workflow);
}
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,8 @@ public ResponseEntity<TeamDTO> updateTeam(
}
TeamDTO updatedTeam = teamService.updateTeam(team);
// Remove the old logo
if (fileRemovedPath.isPresent()) {
eventPublisher.publishEvent(new ResourceRemoveEvent(this, fileRemovedPath.get()));
}
fileRemovedPath.ifPresent(
s -> eventPublisher.publishEvent(new ResourceRemoveEvent(this, s)));
return ResponseEntity.ok(updatedTeam);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,13 @@
import io.flexwork.modules.teams.service.dto.WorkflowDTO;
import io.flexwork.modules.teams.service.dto.WorkflowDetailedDTO;
import io.flexwork.modules.teams.service.dto.WorkflowStateDTO;
import io.flexwork.query.QueryDTO;
import jakarta.validation.Valid;
import java.util.List;
import java.util.Optional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
Expand All @@ -33,15 +39,16 @@ public WorkflowController(
}

@PostMapping
public ResponseEntity<Workflow> createWorkflow(@RequestBody Workflow workflow) {
Workflow createdWorkflow = workflowService.createWorkflow(workflow);
public ResponseEntity<WorkflowDTO> createWorkflow(@RequestBody Workflow workflow) {
WorkflowDTO createdWorkflow = workflowService.createWorkflow(workflow);
return ResponseEntity.ok(createdWorkflow);
}

@GetMapping
public ResponseEntity<List<Workflow>> getAllWorkflows() {
List<Workflow> workflows = workflowService.getAllWorkflows();
return ResponseEntity.ok(workflows);
@PostMapping("/search")
public ResponseEntity<Page<WorkflowDTO>> findWorkflows(
@Valid @RequestBody Optional<QueryDTO> queryDTO, Pageable pageable) {
return new ResponseEntity<>(
workflowService.findWorkflows(queryDTO, pageable), HttpStatus.OK);
}

@GetMapping("/{id}")
Expand All @@ -53,10 +60,10 @@ public ResponseEntity<Workflow> getWorkflowById(@PathVariable Long id) {
}

@PutMapping("/{id}")
public ResponseEntity<Workflow> updateWorkflow(
@PathVariable Long id, @RequestBody Workflow workflow) {
public ResponseEntity<WorkflowDTO> updateWorkflow(
@PathVariable Long id, @RequestBody WorkflowDTO workflow) {
try {
Workflow updatedWorkflow = workflowService.updateWorkflow(id, workflow);
WorkflowDTO updatedWorkflow = workflowService.updateWorkflow(id, workflow);
return ResponseEntity.ok(updatedWorkflow);
} catch (IllegalArgumentException e) {
return ResponseEntity.notFound().build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,10 @@ authority_name;resource_name;permission
ROLE_USER;Users;1
ROLE_USER;Teams;1
ROLE_USER;Organizations;1
ROLE_USER;Authorities;1
ROLE_USER;Authorities;1
ROLE_USER;Workflows;0
ROLE_ADMIN;Users;3
ROLE_ADMIN;Teams;3
ROLE_ADMIN;Organizations;3
ROLE_ADMIN;Authorities;3
ROLE_ADMIN;Workflows;3

This file was deleted.

Loading

0 comments on commit 51e17ab

Please sign in to comment.