ViSnezh
This commit is contained in:
1 parent
3b5a6aab84
commit
39aad68575
4 files changed
+88
-5
No files matched your search
@@ -7,6 +7,7 @@ import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import site.easystartup.web.project.domain.model.Project;
|
||||
import site.easystartup.web.project.domain.payload.requst.ProjectRequest;
|
||||
import site.easystartup.web.project.domain.validation.ResponseErrorValidation;
|
||||
import site.easystartup.web.project.dto.ProjectDto;
|
||||
import site.easystartup.web.project.service.ProjectService;
|
||||
@@ -23,7 +24,7 @@ public class ProjectController {
|
||||
private final ModelMapper modelMapper;
|
||||
|
||||
@PostMapping("/create")
|
||||
public ModelAndView createProject(@ModelAttribute("project") ProjectDto projectDto,
|
||||
public ModelAndView createProject(@ModelAttribute("project") ProjectRequest projectRequest,
|
||||
BindingResult bindingResult,
|
||||
Principal principal) {
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
@@ -33,7 +34,7 @@ public class ProjectController {
|
||||
return modelAndView.addObject("errors", errors);
|
||||
}
|
||||
|
||||
Project project = projectService.createProject(modelMapper.map(projectDto, Project.class), principal);
|
||||
Project project = projectService.createProject(projectRequest, principal);
|
||||
modelAndView.addObject("project", project);
|
||||
modelAndView.setViewName("project");
|
||||
return modelAndView;
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package site.easystartup.web.project.domain.payload.requst;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import site.easystartup.web.project.dto.ParticipantDto;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@RequiredArgsConstructor
|
||||
public class ProjectRequest {
|
||||
|
||||
private MultipartFile cover;
|
||||
|
||||
@Size(min = 3, max = 100, message = "Title should be no less 3 and no more 100 signs")
|
||||
@NotNull
|
||||
private String title;
|
||||
@Size(min = 50, message = "Description should be no less 50 signs")
|
||||
@NotNull
|
||||
private String description;
|
||||
private int commercialStatus;
|
||||
@NotNull
|
||||
private String technology;
|
||||
private List<ParticipantDto> participants;
|
||||
}
|
||||
@@ -1,24 +1,38 @@
|
||||
package site.easystartup.web.project.service;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.modelmapper.ModelMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import site.easystartup.web.project.domain.model.Participant;
|
||||
import site.easystartup.web.project.domain.model.Project;
|
||||
import site.easystartup.web.project.domain.payload.requst.ProjectRequest;
|
||||
import site.easystartup.web.project.repo.ProjectRepo;
|
||||
import site.easystartup.web.service.UserService;
|
||||
import site.easystartup.web.storage.service.StorageService;
|
||||
|
||||
import java.security.Principal;
|
||||
import java.util.Arrays;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ProjectService {
|
||||
private final ProjectRepo projectRepo;
|
||||
private final UserService userService;
|
||||
private final ModelMapper modelMapper;
|
||||
private final StorageService storageService;
|
||||
|
||||
|
||||
public Project createProject(Project project, Principal principal) {
|
||||
return null;
|
||||
public Project createProject(ProjectRequest projectRequest, Principal principal) {
|
||||
Project project = projectRequestToProject(projectRequest);
|
||||
|
||||
project.setOwner(userService.getUserByPrincipal(principal));
|
||||
return project;
|
||||
}
|
||||
|
||||
public Project updateProject(Project map, Long projectId, Principal principal) {
|
||||
public Project updateProject(Project projectUpdate, Long projectId, Principal principal) {
|
||||
}
|
||||
|
||||
public void deleteProject(Long projectId, Principal principal) {
|
||||
@@ -46,4 +60,26 @@ public class ProjectService {
|
||||
|
||||
public Object confirmParticipant(Long projectId, Long participantId, Principal principal) {
|
||||
}
|
||||
|
||||
|
||||
private String formatTechnology(String technology) {
|
||||
StringBuilder result = new StringBuilder();
|
||||
Arrays.stream(technology.split(",")).forEach(tech -> result.append(tech.trim()).append(" "));
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
private Project projectRequestToProject(ProjectRequest projectRequest) {
|
||||
Project project = new Project();
|
||||
|
||||
project.setParticipants(projectRequest.getParticipants()
|
||||
.stream().map(part -> modelMapper.map(part, Participant.class)).collect(Collectors.toList()));
|
||||
project.setTitle(projectRequest.getTitle());
|
||||
project.setDescription(projectRequest.getDescription());
|
||||
project.setTechnology(formatTechnology(projectRequest.getTechnology()));
|
||||
project.setCommercialStatus(project.getCommercialStatus());
|
||||
project.setCoverLink(projectRequest.getCover().getName());
|
||||
storageService.save(projectRequest.getCover());
|
||||
|
||||
return project;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package site.easystartup.web.service;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.hibernate.query.criteria.internal.predicate.PredicateImplementor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import site.easystartup.web.domain.User;
|
||||
import site.easystartup.web.repo.UserRepo;
|
||||
|
||||
import java.security.Principal;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class UserService {
|
||||
private final UserRepo userRepo;
|
||||
|
||||
public User getUserByPrincipal(Principal principal) {
|
||||
return userRepo.findByUsername(principal.getName());
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user