Skip to content
Snippets Groups Projects
Commit aaae912c authored by Martin Staehr's avatar Martin Staehr
Browse files

#40 feat: finish implementation of dummy project creation

parent 4bb64683
No related branches found
No related tags found
No related merge requests found
......@@ -58,6 +58,8 @@ public interface Management {
*/
void update(User user);
void update(Group group);
/**
* Add an entry in the M:N table linking users and projects
*
......@@ -81,6 +83,8 @@ public interface Management {
Boolean exists(Project project);
Boolean exists(Group group);
/**
* Get all the users linked to a project
*
......
......@@ -107,6 +107,16 @@ public class ManagementImpl implements Management {
connect.close();
}
@Override
public void update(Group group) {
MysqlConnect connect = new MysqlConnect();
connect.connect();
String mysqlRequest = "UPDATE group SET projectId=?,chatRoomid=?";
connect.issueUpdateStatement(mysqlRequest, group.getProjectId(), group.getChatRoomId());
// TODO: implement update of groupuser if needed later (if member list need to be updated)
}
@Override
public Boolean exists(User user) {
Boolean result;
......@@ -133,6 +143,12 @@ public class ManagementImpl implements Management {
return result;
}
@Override
public Boolean exists(Group group) {
List<Group> groups = getGroupsByProjectId(group.getProjectId());
return groups.contains(group);
}
@Override
public List<User> getUsers(Project project) {
String query =
......@@ -341,6 +357,7 @@ public class ManagementImpl implements Management {
if (groups.isEmpty()) {
return null;
}
connect.close();
return groups;
}
......
......@@ -4,6 +4,7 @@ import unipotsdam.gf.core.management.user.User;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class Group {
......@@ -36,6 +37,21 @@ public class Group {
this.chatRoomId = chatRoomId;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Group group = (Group) o;
return Objects.equals(members, group.members) &&
Objects.equals(projectId, group.projectId) &&
Objects.equals(chatRoomId, group.chatRoomId);
}
@Override
public int hashCode() {
return Objects.hash(members, projectId, chatRoomId);
}
public List<User> getMembers() {
return members;
}
......
......@@ -30,25 +30,25 @@ public class GroupCreationService {
public boolean createExampleProject() {
User docentUser = getDocentUser();
Project project = new Project("1", "", true, docentUser.getEmail(), "admin");
Project project = new Project("1", "password", true, docentUser.getEmail(), "admin");
List<Group> groups = createDummyGroups(project.getId());
if (!management.exists(project)) {
management.create(project);
}
List<Group> nonCreatedGroups = groups.stream().filter(group -> management.exists(group)).collect(Collectors.toList());
groups.forEach(group -> management.create(group));
// TODO: read List<Group> of database to get Id for chatRoomName (Should be ProjectName - GroupId)
// TODO: implement sql service injection for, so connection is only done once in app
List<Group> nonEmptyGroups = groups.stream().filter(group -> group.getMembers().isEmpty())
.collect(Collectors.toList());
if (nonEmptyGroups.isEmpty()) {
return false;
if (!nonCreatedGroups.isEmpty()) {
nonCreatedGroups.forEach(group -> management.create(group));
}
List<Group> groupsWithId = management.getGroupsByProjectId(project.getId());
groupsWithId.forEach(group -> {
String chatRoomName = String.join(" - ", project.getId(), String.valueOf(group.getId()));
group.setChatRoomId(communicationService.createChatRoom(chatRoomName, group.getMembers()));
management.update(group);
});
return true;
}
......
......@@ -22,7 +22,7 @@ CREATE TABLE if not exists `projects` (
CREATE TABLE if not exists `groups` (
`id` int NOT NULL AUTO_INCREMENT,
`projectId` varchar(400) NOT NULL,
`chatRoomId` varchar(400) NOT NULL,
`chatRoomId` varchar(400),
PRIMARY KEY (id)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment