Skip to content

task manager #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/main/java/software/design/entity/ProjectEntity.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,5 @@ public class ProjectEntity {

@OneToMany(mappedBy = "project")
private List<TaskEntity> tasks;

}
23 changes: 15 additions & 8 deletions src/main/java/software/design/model/Project.java
Original file line number Diff line number Diff line change
@@ -1,23 +1,30 @@
package software.design.model;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
import java.util.UUID;

public class Project {
private UUID id;
@AllArgsConstructor
@RequiredArgsConstructor
public record Project(
UUID id,

@NotBlank
private String name;
String name,

private String description;
String description,

private Date dateCreated;
Date dateCreated,

private User user;
User user,

@NotNull
private List<Task> tasks;
}
List<Task> tasks
)
{}
9 changes: 8 additions & 1 deletion src/main/java/software/design/model/Task.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
package software.design.model;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.UUID;

@Getter
@AllArgsConstructor
@RequiredArgsConstructor
public class Task {

private UUID id;
Expand All @@ -13,7 +20,7 @@ public class Task {

private String description;

private Date dateCreated;
final private Date dateCreated;

private TaskStatus status;

Expand Down
16 changes: 16 additions & 0 deletions src/main/java/software/design/model/TaskStatus.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,20 @@
package software.design.model;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

import javax.validation.constraints.NotBlank;
import java.util.List;
import java.util.UUID;

@Getter
@AllArgsConstructor
public class TaskStatus {
private UUID id;

@NotBlank
private String name;

private List<Task> tasks;
}
9 changes: 8 additions & 1 deletion src/main/java/software/design/model/User.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,24 @@
package software.design.model;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;
import java.util.UUID;

@Getter
@AllArgsConstructor
@RequiredArgsConstructor
public class User {
private UUID id;

@NotBlank
private String username;

private Date created;
final private Date created;

private List<Project> projects;
}
14 changes: 14 additions & 0 deletions src/main/java/software/design/repository/ProjectRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package software.design.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import software.design.entity.GroupEntity;
import software.design.entity.ProjectEntity;
import software.design.entity.StudentEntity;

import java.util.Optional;
import java.util.UUID;

@Repository
public interface ProjectRepository extends JpaRepository<StudentEntity, UUID> {
}
14 changes: 14 additions & 0 deletions src/main/java/software/design/repository/TaskRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package software.design.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import software.design.entity.GroupEntity;
import software.design.entity.StudentEntity;
import software.design.entity.TaskEntity;

import java.util.Optional;
import java.util.UUID;

@Repository
public interface TaskRepository extends JpaRepository<StudentEntity, UUID> {
}
11 changes: 11 additions & 0 deletions src/main/java/software/design/repository/TaskStatusRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package software.design.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import software.design.entity.StudentEntity;

import java.util.UUID;

@Repository
public interface TaskStatusRepository extends JpaRepository<StudentEntity, UUID> {
}
11 changes: 11 additions & 0 deletions src/main/java/software/design/repository/UserRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package software.design.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import software.design.entity.StudentEntity;

import java.util.UUID;

@Repository
public interface UserRepository extends JpaRepository<StudentEntity, UUID> {
}
36 changes: 36 additions & 0 deletions src/main/java/software/design/service/ProjectMapper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package software.design.service;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import software.design.entity.ProjectEntity;
import software.design.model.Project;

@Component
@RequiredArgsConstructor
public class ProjectMapper {

private final TaskMapper taskMapper;
private final UserMapper userMapper;

public ProjectEntity modelToEntity(Project model) {
return new ProjectEntity(
null,
model.name(),
model.description(),
model.dateCreated(),
userMapper.modelToEntity(model.user()),
model.tasks().stream().map(taskMapper::modelToEntity).toList()
);
}

public Project entityToModel(ProjectEntity entity) {
return new Project(
entity.getId(),
entity.getName(),
entity.getDescription(),
entity.getDateCreated(),
userMapper.entityToModel(entity.getUser()),
entity.getTasks().stream().map(taskMapper::entityToModel).toList()
);
}
}
7 changes: 7 additions & 0 deletions src/main/java/software/design/service/ProjectService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package software.design.service;

import software.design.model.Project;

public class ProjectService {

}
35 changes: 35 additions & 0 deletions src/main/java/software/design/service/TaskMapper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package software.design.service;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import software.design.entity.TaskEntity;
import software.design.model.Task;

@Component
@RequiredArgsConstructor
public class TaskMapper {

private final ProjectMapper projectMapper;

private final TaskStatusMapper taskStatusMapper;

public TaskEntity modelToEntity(Task model){
return new TaskEntity(
model.getId(),
model.getName(),
model.getDescription(),
model.getDateCreated(),
taskStatusMapper.modelToEntity(model.getStatus()),
projectMapper.modelToEntity(model.getProject()));
}

public Task entityToModel(TaskEntity entity){
return new Task(
entity.getId(),
entity.getName(),
entity.getDescription(),
entity.getDateCreated(),
taskStatusMapper.entityToModel(entity.getStatus()),
projectMapper.entityToModel(entity.getProject()));
}
}
4 changes: 4 additions & 0 deletions src/main/java/software/design/service/TaskService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package software.design.service;

public class TaskService {
}
27 changes: 27 additions & 0 deletions src/main/java/software/design/service/TaskStatusMapper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package software.design.service;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import software.design.entity.TaskStatusEntity;
import software.design.model.TaskStatus;

@Component
@RequiredArgsConstructor
public class TaskStatusMapper {

private final TaskMapper taskMapper;

public TaskStatusEntity modelToEntity(TaskStatus model){
return new TaskStatusEntity(
model.getId(),
model.getName(),
model.getTasks().stream().map(taskMapper::modelToEntity).toList());
}

public TaskStatus entityToModel(TaskStatusEntity entity){
return new TaskStatus(
entity.getId(),
entity.getName(),
entity.getTasks().stream().map(taskMapper::entityToModel).toList());
}
}
4 changes: 4 additions & 0 deletions src/main/java/software/design/service/TaskStatusService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package software.design.service;

public class TaskStatusService {
}
29 changes: 29 additions & 0 deletions src/main/java/software/design/service/UserMapper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package software.design.service;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import software.design.entity.UserEntity;
import software.design.model.User;

@Component
@RequiredArgsConstructor
public class UserMapper {

private final ProjectMapper projectMapper;

public UserEntity modelToEntity(User model){
return new UserEntity(
model.getId(),
model.getUsername(),
model.getCreated(),
model.getProjects().stream().map(projectMapper::modelToEntity).toList());
}

public User entityToModel(UserEntity entity){
return new User(
entity.getId(),
entity.getName(),
entity.getDateCreated(),
entity.getProjects().stream().map(projectMapper::entityToModel).toList());
}
}
4 changes: 4 additions & 0 deletions src/main/java/software/design/service/UserService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package software.design.service;

public class UserService {
}