implemented task/:id/view

This commit is contained in:
2025-07-22 23:51:37 +02:00
parent b03b0683bc
commit c2eae076f4
11 changed files with 213 additions and 14 deletions

View File

@@ -9,10 +9,10 @@ import java.util.Map;
public interface ProjectService {
CompanyService companyService();
public Map<Long,Project> listCompanyProjects(long companyId, boolean includeClosed) throws UmbrellaException;
public Map<Long,Project> listUserProjects(long userId, boolean includeClosed) throws UmbrellaException;
public Collection<Project> loadMembers(Collection<Project> projects);
public default Project loadMembers(Project project){
Map<Long,Project> listCompanyProjects(long companyId, boolean includeClosed) throws UmbrellaException;
Map<Long,Project> listUserProjects(long userId, boolean includeClosed) throws UmbrellaException;
Collection<Project> loadMembers(Collection<Project> projects);
default Project loadMembers(Project project){
loadMembers(List.of(project));
return project;
}

View File

@@ -2,14 +2,22 @@
package de.srsoftware.umbrella.core.api;
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
import de.srsoftware.umbrella.core.model.Project;
import de.srsoftware.umbrella.core.model.Task;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
public interface TaskService {
CompanyService companyService();
HashMap<Long, Task> listCompanyTasks(long companyId) throws UmbrellaException;
HashMap<Long, Task> listProjectTasks(long projectId) throws UmbrellaException;
Collection<Task> loadMembers(Collection<Task> tasks);
default Task loadMembers(Task task){
loadMembers(List.of(task));
return task;
}
ProjectService projectService();
UserService userService();

View File

@@ -12,7 +12,7 @@ import java.time.LocalDate;
import java.util.HashMap;
import java.util.Map;
public record Task(long id, long projectId, Long parentTaskId, String name, String description, Status status, Double estimatedTime, LocalDate start, LocalDate dueDate, boolean showClosed, boolean noIndex) implements Mappable {
public record Task(long id, long projectId, Long parentTaskId, String name, String description, Status status, Double estimatedTime, LocalDate start, LocalDate dueDate, boolean showClosed, boolean noIndex, Map<Long,Member> members) implements Mappable {
public static Task of(ResultSet rs) throws SQLException {
var estTime = rs.getDouble(EST_TIME);
var parentTaskId = rs.getLong(PARENT_TASK_ID);
@@ -29,7 +29,8 @@ public record Task(long id, long projectId, Long parentTaskId, String name, Stri
startDate != null ? LocalDate.parse(startDate) : null,
dueDate != null ? LocalDate.parse(dueDate) : null,
rs.getBoolean(SHOW_CLOSED),
rs.getBoolean(NO_INDEX)
rs.getBoolean(NO_INDEX),
new HashMap<>()
);
}
@@ -49,4 +50,8 @@ public record Task(long id, long projectId, Long parentTaskId, String name, Stri
map.put(NO_INDEX,noIndex);
return map;
}
public boolean hasMember(UmbrellaUser user) {
return members.containsKey(user.id());
}
}