Merge remote-tracking branch 'origin/main'

This commit is contained in:
redtea committed 2022-08-29 15:49:06 +03:00
commit cf24d07a78
6 files changed
+173 -65

No files matched your search

@@ -8,6 +8,7 @@ import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import site.easystartup.easystartupcore.project.domain.model.Project;
import site.easystartup.easystartupcore.project.domain.payload.response.ResponseMessage;
import site.easystartup.easystartupcore.project.domain.validation.ResponseErrorValidation;
import site.easystartup.easystartupcore.project.dto.ProjectDto;
import site.easystartup.easystartupcore.project.service.ProjectService;
@@ -23,69 +24,124 @@ public class ProjectController {
private final ResponseErrorValidation responseErrorValidation;
private final ModelMapper modelMapper;
// @PostMapping("/create")
// public ModelAndView createProject(@ModelAttribute("project") ProjectDto projectDto,
// BindingResult bindingResult,
// Principal principal) {
// ModelAndView modelAndView = new ModelAndView();
//
// if (bindingResult.hasErrors()) {
// Map<String, String> errors = responseErrorValidation.mapValidationService(bindingResult);
// return modelAndView.addObject("errors", errors);
// }
//
// Project project = projectService.createProject(modelMapper.map(projectDto, Project.class), principal);
// modelAndView.addObject("project", project);
// modelAndView.setViewName("project");
// return modelAndView;
// }
//
// @PatchMapping("/{projectId}/update")
// public ModelAndView updateProject() {
// ModelAndView modelAndView = new ModelAndView();
//
// return modelAndView;
// }
//
// @DeleteMapping("/{projectId}/delete")
// public ModelAndView deleteProject() {
// ModelAndView modelAndView = new ModelAndView();
//
// return modelAndView;
// }
//
// @GetMapping("/{projectId}")
// public ModelAndView getProject() {
// ModelAndView modelAndView = new ModelAndView();
//
// return modelAndView;
// }
//
// @GetMapping("/{userId}")
// public ModelAndView getAllProjectsForUser() {
// }
//
// @GetMapping("/{technology}")
// public ModelAndView getAllProjectsWithTechnology() {
// }
//
// @GetMapping("/my")
// public ModelAndView getAllProjectsForCurrentUser() {
// }
//
// @PostMapping("/{projectId}/applay")
// public ModelAndView applayOnProject() {
// ModelAndView modelAndView = new ModelAndView();
//
// return modelAndView;
// }
//
// @PostMapping("/{projectId}/{participantId}")
// public ModelAndView confirmParticipant() {
// ModelAndView modelAndView = new ModelAndView();
//
// return modelAndView;
// }
@PostMapping("/create")
public ModelAndView createProject(@ModelAttribute("project") ProjectDto projectDto,
BindingResult bindingResult,
Principal principal) {
ModelAndView modelAndView = new ModelAndView();
if (bindingResult.hasErrors()) {
Map<String, String> errors = responseErrorValidation.mapValidationService(bindingResult);
return modelAndView.addObject("errors", errors);
}
Project project = projectService.createProject(modelMapper.map(projectDto, Project.class), principal);
modelAndView.addObject("project", project);
modelAndView.setViewName("project");
return modelAndView;
}
@PatchMapping("/{projectId}/update")
public ModelAndView updateProject(@ModelAttribute("projectUpdate") ProjectDto projectDto,
@PathVariable("projectId") Long projectId,
BindingResult bindingResult,
Principal principal) {
ModelAndView modelAndView = new ModelAndView();
if (bindingResult.hasErrors()) {
Map<String, String> errors = responseErrorValidation.mapValidationService(bindingResult);
return modelAndView.addObject("errors", errors);
}
Project projectUpdated = projectService
.updateProject(modelMapper.map(projectDto, Project.class), projectId, principal);
modelAndView.addObject(projectUpdated);
modelAndView.setViewName("project");
return modelAndView;
}
@DeleteMapping("/{projectId}/delete")
public ModelAndView deleteProject(@PathVariable("projectId") Long projectId,
Principal principal) {
ModelAndView modelAndView = new ModelAndView();
projectService.deleteProject(projectId, principal);
modelAndView.setViewName("redirect:/my"); // some ?
return modelAndView;
}
@GetMapping("/{projectId}")
public ModelAndView getProject(@PathVariable("projectId") Long projectId) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("project", projectService.getProjectById(projectId));
modelAndView.setViewName("project");
return modelAndView;
}
@GetMapping("/{userId}")
public ModelAndView getAllProjectsForUser(@PathVariable("userId") Long userId) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("projects", projectService.getAllProjectsForUser(userId));
modelAndView.setViewName("all-projects");
return modelAndView;
}
@GetMapping("/{technology}")
public ModelAndView getAllProjectsWithTechnology(@PathVariable("technology") String technology) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("projects", projectService.getAllProjectsWithTechnology(technology));
modelAndView.setViewName("all-projects");
return modelAndView;
}
@GetMapping("/my")
public ModelAndView getAllProjectsForCurrentUser(Principal principal) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject(projectService.getAllProjectsForCurrentUser(principal));
modelAndView.setViewName("all-projects");
return modelAndView;
}
@GetMapping("/{nameOfPosition}")
public ModelAndView getAllProjectsWithPosition(@PathVariable("nameOfPosition") String nameOfPosition) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("projects", projectService.getAllProjectsWithPosition(nameOfPosition));
modelAndView.setViewName("all-projects");
return modelAndView;
}
@PostMapping("/{projectId}/applay")
public ModelAndView applayOnProject(@PathVariable("projectId") Long projectId,
Principal principal) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("message", projectService.applayOnProject(projectId, principal));
modelAndView.addObject("project", modelMapper.map(projectService.getProjectById(projectId), ProjectDto.class));
modelAndView.setViewName("project");
return modelAndView;
}
@PostMapping("/{projectId}/{participantId}")
public ModelAndView confirmParticipant(@PathVariable("projectId") Long projectId,
@PathVariable("participantId") Long participantId,
Principal principal) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("message", projectService.confirmParticipant(projectId, participantId, principal));
modelAndView.addObject("project", projectService.getProjectById(projectId));
modelAndView.setViewName("project");
return modelAndView;
}
}
@@ -28,7 +28,7 @@ public class Participant {
private String nameOfPosition;
@ManyToOne
@JoinColumn(name = "user_id")
private User userId;
private User user;
@OneToMany
private Set<User> requests;
@@ -0,0 +1,12 @@
package site.easystartup.easystartupcore.project.domain.payload.response;
import lombok.Data;
@Data
public class ResponseMessage {
private String message;
public ResponseMessage(String message) {
this.message = message;
}
}
@@ -12,6 +12,6 @@ public class ParticipantDto implements Serializable {
@NotNull
private final String technology;
private final String nameOfPosition;
private final UserDto userId;
private final UserDto user;
private final Set<UserDto> requests;
}
@@ -6,6 +6,7 @@ import site.easystartup.easystartupcore.project.domain.model.Project;
import site.easystartup.easystartupcore.project.repo.ProjectRepo;
import java.security.Principal;
import java.util.Set;
@Service
@RequiredArgsConstructor
@@ -16,4 +17,33 @@ public class ProjectService {
public Project createProject(Project project, Principal principal) {
return null;
}
public Project updateProject(Project map, Long projectId, Principal principal) {
}
public void deleteProject(Long projectId, Principal principal) {
}
public Project getProjectById(Long projectId) {
}
public Set<Project> getAllProjectsForUser(Long userId) {
}
public Set<Project> getAllProjectsWithTechnology(String technology) {
}
public Set<Project> getAllProjectsForCurrentUser(Principal principal) {
}
public Set<Project> getAllProjectsWithPosition(String nameOfPosition) {
}
public Object applayOnProject(Long projectId, Principal principal) {
}
public Object confirmParticipant(Long projectId, Long participantId, Principal principal) {
}
}