implemented task creation right from the canban

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2025-07-27 14:55:10 +02:00
parent 65102df091
commit 3b163a0d77
6 changed files with 64 additions and 20 deletions

View File

@@ -293,7 +293,10 @@ public class TaskModule extends BaseHandler implements TaskService {
long userId = Long.parseLong(key);
if (!(memberData.get(key) instanceof JSONObject nested)) throw invalidFieldException("members."+userId,"JSON");
if (!(nested.has(PERMISSION) && nested.get(PERMISSION) instanceof JSONObject permission)) throw invalidFieldException("members."+userId+".permission","JSON");
if (!(permission.has(CODE) && permission.get(CODE) instanceof Number code)) throw invalidFieldException("members."+userId+".permission.code","int");
Permission perm = null;
if (permission.has(CODE) && permission.get(CODE) instanceof Number code) perm = Permission.of(code.intValue());
if (permission.has(NAME) && permission.get(NAME) instanceof String name) perm = Permission.valueOf(name);
if (perm == null) throw invalidFieldException("members."+userId+".permission.code","int");
if (!project.members().containsKey(userId)) {
String username = nested.has(USER) && nested.get(USER) instanceof JSONObject userData && userData.get(NAME) instanceof String n ? n : key;
throw new UmbrellaException(HTTP_BAD_REQUEST,"User {0} is no member of the leading project and cannot be assigned to this task",username);
@@ -304,10 +307,11 @@ public class TaskModule extends BaseHandler implements TaskService {
task = taskDb.save(task);
for (var key : memberData.keySet()){
long userId = Long.parseLong(key);
var code = memberData.getJSONObject(key).getJSONObject(PERMISSION).getInt(CODE);
taskDb.setMember(task.id(),userId,Permission.of(code));
var nested = memberData.getJSONObject(key).getJSONObject(PERMISSION);
var permission = nested.has(CODE) ? Permission.of(nested.getInt(CODE)) : Permission.valueOf(nested.getString(NAME));
taskDb.setMember(task.id(),userId,permission);
}
return sendContent(ex,task);
return sendContent(ex,loadMembers(task));
}
private boolean postTaskList(UmbrellaUser user, HttpExchange ex) throws IOException {