remove fontawesome + fix links + events modify cache + fix search
This commit is contained in:
@ -6,7 +6,7 @@ import org.springframework.format.FormatterRegistry;
|
|||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class WebConfig implements WebMvcConfigurer {
|
public class FormatterConfig implements WebMvcConfigurer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addFormatters(FormatterRegistry registry) {
|
public void addFormatters(FormatterRegistry registry) {
|
@ -9,6 +9,7 @@ import mops.gruppen2.domain.exception.IdMismatchException;
|
|||||||
import mops.gruppen2.domain.exception.UserAlreadyExistsException;
|
import mops.gruppen2.domain.exception.UserAlreadyExistsException;
|
||||||
import mops.gruppen2.domain.model.group.Group;
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
import mops.gruppen2.domain.model.group.User;
|
import mops.gruppen2.domain.model.group.User;
|
||||||
|
import mops.gruppen2.infrastructure.GroupCache;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -32,6 +33,11 @@ public class AddMemberEvent extends Event {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateCache(GroupCache cache, Group group) {
|
||||||
|
cache.usersPut(target, group);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyEvent(Group group) throws UserAlreadyExistsException, GroupFullException {
|
protected void applyEvent(Group group) throws UserAlreadyExistsException, GroupFullException {
|
||||||
group.addMember(target, user);
|
group.addMember(target, user);
|
||||||
|
@ -6,6 +6,7 @@ import lombok.Value;
|
|||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import mops.gruppen2.domain.exception.BadArgumentException;
|
import mops.gruppen2.domain.exception.BadArgumentException;
|
||||||
import mops.gruppen2.domain.model.group.Group;
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
|
import mops.gruppen2.infrastructure.GroupCache;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -23,6 +24,12 @@ public class CreateGroupEvent extends Event {
|
|||||||
this.date = date;
|
this.date = date;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateCache(GroupCache cache, Group group) {
|
||||||
|
cache.groupsPut(groupid, group);
|
||||||
|
cache.linksPut(group.getLink(), group);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyEvent(Group group) throws BadArgumentException {
|
protected void applyEvent(Group group) throws BadArgumentException {
|
||||||
group.setId(groupid);
|
group.setId(groupid);
|
||||||
|
@ -5,6 +5,7 @@ import lombok.Value;
|
|||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import mops.gruppen2.domain.exception.NoAccessException;
|
import mops.gruppen2.domain.exception.NoAccessException;
|
||||||
import mops.gruppen2.domain.model.group.Group;
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
|
import mops.gruppen2.infrastructure.GroupCache;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -17,6 +18,11 @@ public class DestroyGroupEvent extends Event {
|
|||||||
super(groupId, exec, null);
|
super(groupId, exec, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateCache(GroupCache cache, Group group) {
|
||||||
|
cache.groupsRemove(group);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyEvent(Group group) throws NoAccessException {
|
protected void applyEvent(Group group) throws NoAccessException {
|
||||||
group.destroy(exec);
|
group.destroy(exec);
|
||||||
|
@ -69,8 +69,8 @@ public abstract class Event {
|
|||||||
|
|
||||||
checkGroupIdMatch(group.getId());
|
checkGroupIdMatch(group.getId());
|
||||||
group.updateVersion(version);
|
group.updateVersion(version);
|
||||||
applyEvent(group);
|
|
||||||
updateCache(cache, group);
|
updateCache(cache, group);
|
||||||
|
applyEvent(group);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkGroupIdMatch(UUID groupid) throws IdMismatchException {
|
private void checkGroupIdMatch(UUID groupid) throws IdMismatchException {
|
||||||
@ -84,15 +84,7 @@ public abstract class Event {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateCache(GroupCache cache, Group group) {
|
protected abstract void updateCache(GroupCache cache, Group group);
|
||||||
if (this instanceof CreateGroupEvent) {
|
|
||||||
cache.put(group);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this instanceof DestroyGroupEvent) {
|
|
||||||
cache.remove(group);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract void applyEvent(Group group) throws EventException;
|
protected abstract void applyEvent(Group group) throws EventException;
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import lombok.extern.log4j.Log4j2;
|
|||||||
import mops.gruppen2.domain.exception.LastAdminException;
|
import mops.gruppen2.domain.exception.LastAdminException;
|
||||||
import mops.gruppen2.domain.exception.UserNotFoundException;
|
import mops.gruppen2.domain.exception.UserNotFoundException;
|
||||||
import mops.gruppen2.domain.model.group.Group;
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
|
import mops.gruppen2.infrastructure.GroupCache;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -21,6 +22,11 @@ public class KickMemberEvent extends Event {
|
|||||||
super(groupId, exec, target);
|
super(groupId, exec, target);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateCache(GroupCache cache, Group group) {
|
||||||
|
cache.usersRemove(target, group);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyEvent(Group group) throws UserNotFoundException, LastAdminException {
|
protected void applyEvent(Group group) throws UserNotFoundException, LastAdminException {
|
||||||
group.kickMember(target);
|
group.kickMember(target);
|
||||||
|
@ -7,6 +7,7 @@ import lombok.extern.log4j.Log4j2;
|
|||||||
import mops.gruppen2.domain.exception.NoAccessException;
|
import mops.gruppen2.domain.exception.NoAccessException;
|
||||||
import mops.gruppen2.domain.model.group.Group;
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
import mops.gruppen2.domain.model.group.wrapper.Description;
|
import mops.gruppen2.domain.model.group.wrapper.Description;
|
||||||
|
import mops.gruppen2.infrastructure.GroupCache;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -27,6 +28,9 @@ public class SetDescriptionEvent extends Event {
|
|||||||
this.description = description;
|
this.description = description;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateCache(GroupCache cache, Group group) {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyEvent(Group group) throws NoAccessException {
|
protected void applyEvent(Group group) throws NoAccessException {
|
||||||
group.setDescription(exec, description);
|
group.setDescription(exec, description);
|
||||||
|
@ -7,6 +7,7 @@ import lombok.extern.log4j.Log4j2;
|
|||||||
import mops.gruppen2.domain.exception.NoAccessException;
|
import mops.gruppen2.domain.exception.NoAccessException;
|
||||||
import mops.gruppen2.domain.model.group.Group;
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
import mops.gruppen2.domain.model.group.wrapper.Link;
|
import mops.gruppen2.domain.model.group.wrapper.Link;
|
||||||
|
import mops.gruppen2.infrastructure.GroupCache;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -24,6 +25,12 @@ public class SetInviteLinkEvent extends Event {
|
|||||||
this.link = link;
|
this.link = link;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateCache(GroupCache cache, Group group) {
|
||||||
|
cache.linksRemove(group.getLink());
|
||||||
|
cache.linksPut(link.getValue(), group);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyEvent(Group group) throws NoAccessException {
|
protected void applyEvent(Group group) throws NoAccessException {
|
||||||
group.setLink(exec, link);
|
group.setLink(exec, link);
|
||||||
|
@ -8,6 +8,7 @@ import mops.gruppen2.domain.exception.BadArgumentException;
|
|||||||
import mops.gruppen2.domain.exception.NoAccessException;
|
import mops.gruppen2.domain.exception.NoAccessException;
|
||||||
import mops.gruppen2.domain.model.group.Group;
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
import mops.gruppen2.domain.model.group.wrapper.Limit;
|
import mops.gruppen2.domain.model.group.wrapper.Limit;
|
||||||
|
import mops.gruppen2.infrastructure.GroupCache;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -25,6 +26,9 @@ public class SetLimitEvent extends Event {
|
|||||||
this.limit = limit;
|
this.limit = limit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateCache(GroupCache cache, Group group) {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyEvent(Group group) throws BadArgumentException, NoAccessException {
|
protected void applyEvent(Group group) throws BadArgumentException, NoAccessException {
|
||||||
group.setLimit(exec, limit);
|
group.setLimit(exec, limit);
|
||||||
|
@ -7,6 +7,7 @@ import lombok.extern.log4j.Log4j2;
|
|||||||
import mops.gruppen2.domain.exception.NoAccessException;
|
import mops.gruppen2.domain.exception.NoAccessException;
|
||||||
import mops.gruppen2.domain.model.group.Group;
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
import mops.gruppen2.domain.model.group.wrapper.Parent;
|
import mops.gruppen2.domain.model.group.wrapper.Parent;
|
||||||
|
import mops.gruppen2.infrastructure.GroupCache;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -24,6 +25,9 @@ public class SetParentEvent extends Event {
|
|||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateCache(GroupCache cache, Group group) {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyEvent(Group group) throws NoAccessException {
|
protected void applyEvent(Group group) throws NoAccessException {
|
||||||
group.setParent(exec, parent);
|
group.setParent(exec, parent);
|
||||||
|
@ -7,6 +7,7 @@ import lombok.extern.log4j.Log4j2;
|
|||||||
import mops.gruppen2.domain.exception.NoAccessException;
|
import mops.gruppen2.domain.exception.NoAccessException;
|
||||||
import mops.gruppen2.domain.model.group.Group;
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
import mops.gruppen2.domain.model.group.wrapper.Title;
|
import mops.gruppen2.domain.model.group.wrapper.Title;
|
||||||
|
import mops.gruppen2.infrastructure.GroupCache;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -27,6 +28,9 @@ public class SetTitleEvent extends Event {
|
|||||||
this.title = title;
|
this.title = title;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateCache(GroupCache cache, Group group) {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyEvent(Group group) throws NoAccessException {
|
protected void applyEvent(Group group) throws NoAccessException {
|
||||||
group.setTitle(exec, title);
|
group.setTitle(exec, title);
|
||||||
|
@ -7,6 +7,7 @@ import lombok.extern.log4j.Log4j2;
|
|||||||
import mops.gruppen2.domain.exception.EventException;
|
import mops.gruppen2.domain.exception.EventException;
|
||||||
import mops.gruppen2.domain.model.group.Group;
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
import mops.gruppen2.domain.model.group.Type;
|
import mops.gruppen2.domain.model.group.Type;
|
||||||
|
import mops.gruppen2.infrastructure.GroupCache;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -25,6 +26,12 @@ public class SetTypeEvent extends Event {
|
|||||||
this.type = type;
|
this.type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateCache(GroupCache cache, Group group) {
|
||||||
|
cache.typesRemove(group);
|
||||||
|
cache.typesPut(type, group);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyEvent(Group group) throws EventException {
|
protected void applyEvent(Group group) throws EventException {
|
||||||
group.setType(exec, type);
|
group.setType(exec, type);
|
||||||
|
@ -8,6 +8,7 @@ import mops.gruppen2.domain.exception.LastAdminException;
|
|||||||
import mops.gruppen2.domain.exception.UserNotFoundException;
|
import mops.gruppen2.domain.exception.UserNotFoundException;
|
||||||
import mops.gruppen2.domain.model.group.Group;
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
import mops.gruppen2.domain.model.group.Role;
|
import mops.gruppen2.domain.model.group.Role;
|
||||||
|
import mops.gruppen2.infrastructure.GroupCache;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -27,6 +28,9 @@ public class UpdateRoleEvent extends Event {
|
|||||||
this.role = role;
|
this.role = role;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateCache(GroupCache cache, Group group) {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyEvent(Group group) throws UserNotFoundException, LastAdminException {
|
protected void applyEvent(Group group) throws UserNotFoundException, LastAdminException {
|
||||||
group.memberPutRole(target, role);
|
group.memberPutRole(target, role);
|
||||||
|
@ -13,7 +13,7 @@ public final class SortHelper {
|
|||||||
*
|
*
|
||||||
* @param groups Die Liste von Gruppen die sortiert werden soll
|
* @param groups Die Liste von Gruppen die sortiert werden soll
|
||||||
*/
|
*/
|
||||||
public static List<Group> sortByGroupType(List<Group> groups) {
|
public static void sortByGroupType(List<Group> groups) {
|
||||||
groups.sort((Group g1, Group g2) -> {
|
groups.sort((Group g1, Group g2) -> {
|
||||||
if (g1.getType() == Type.LECTURE) {
|
if (g1.getType() == Type.LECTURE) {
|
||||||
return -1;
|
return -1;
|
||||||
@ -24,8 +24,6 @@ public final class SortHelper {
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
return groups;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<Membership> sortByMemberRole(List<Membership> memberships) {
|
public static List<Membership> sortByMemberRole(List<Membership> memberships) {
|
||||||
|
@ -4,9 +4,11 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import mops.gruppen2.domain.exception.EventException;
|
import mops.gruppen2.domain.exception.EventException;
|
||||||
import mops.gruppen2.domain.model.group.Group;
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
|
import mops.gruppen2.domain.model.group.SortHelper;
|
||||||
import mops.gruppen2.infrastructure.GroupCache;
|
import mops.gruppen2.infrastructure.GroupCache;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -29,10 +31,12 @@ public class SearchService {
|
|||||||
* @throws EventException Projektionsfehler
|
* @throws EventException Projektionsfehler
|
||||||
*/
|
*/
|
||||||
//TODO: search in lectures
|
//TODO: search in lectures
|
||||||
public List<Group> searchPublicGroups(String search, String principal) {
|
public List<Group> search(String search, String principal) {
|
||||||
List<Group> groups = groupCache.publics();
|
List<Group> groups = new ArrayList<>();
|
||||||
|
groups.addAll(groupCache.publics());
|
||||||
|
groups.addAll(groupCache.lectures());
|
||||||
groups = removeUserGroups(groups, principal);
|
groups = removeUserGroups(groups, principal);
|
||||||
|
SortHelper.sortByGroupType(groups);
|
||||||
|
|
||||||
if (search.isEmpty()) {
|
if (search.isEmpty()) {
|
||||||
return groups;
|
return groups;
|
||||||
@ -50,5 +54,4 @@ public class SearchService {
|
|||||||
.filter(group -> !group.isMember(principal))
|
.filter(group -> !group.isMember(principal))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,24 @@
|
|||||||
package mops.gruppen2.infrastructure;
|
package mops.gruppen2.infrastructure;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.log4j.Log4j2;
|
||||||
import mops.gruppen2.domain.exception.GroupNotFoundException;
|
import mops.gruppen2.domain.exception.GroupNotFoundException;
|
||||||
import mops.gruppen2.domain.model.group.Group;
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
|
import mops.gruppen2.domain.model.group.Type;
|
||||||
import mops.gruppen2.domain.service.EventStoreService;
|
import mops.gruppen2.domain.service.EventStoreService;
|
||||||
import mops.gruppen2.domain.service.helper.ProjectionHelper;
|
import mops.gruppen2.domain.service.helper.ProjectionHelper;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.EnumMap;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
|
@Log4j2
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Component
|
@Component
|
||||||
@Scope("singleton")
|
@Scope("singleton")
|
||||||
@ -22,20 +27,21 @@ public class GroupCache {
|
|||||||
private final EventStoreService eventStoreService;
|
private final EventStoreService eventStoreService;
|
||||||
|
|
||||||
private final Map<UUID, Group> groups = new HashMap<>();
|
private final Map<UUID, Group> groups = new HashMap<>();
|
||||||
|
private final Map<String, Group> links = new HashMap<>();
|
||||||
|
private final Map<String, List<Group>> users = new HashMap<>();
|
||||||
|
private final Map<Type, List<Group>> types = new EnumMap<>(Type.class);
|
||||||
|
|
||||||
|
|
||||||
|
// ######################################## CACHE ###########################################
|
||||||
|
|
||||||
|
|
||||||
public void init() {
|
public void init() {
|
||||||
ProjectionHelper.project(groups, eventStoreService.findAllEvents(), this);
|
ProjectionHelper.project(groups, eventStoreService.findAllEvents(), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void put(Group group) {
|
|
||||||
groups.put(group.getId(), group);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void remove(Group group) {
|
// ########################################### GETTERS #######################################
|
||||||
groups.remove(group.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Getters
|
|
||||||
|
|
||||||
public Group group(UUID groupid) {
|
public Group group(UUID groupid) {
|
||||||
if (!groups.containsKey(groupid)) {
|
if (!groups.containsKey(groupid)) {
|
||||||
@ -46,33 +52,96 @@ public class GroupCache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Group group(String link) {
|
public Group group(String link) {
|
||||||
return groups.values().stream()
|
if (!links.containsKey(link)) {
|
||||||
.filter(group -> group.getLink().equals(link))
|
throw new GroupNotFoundException("Link ist nicht im Cache.");
|
||||||
.findFirst()
|
}
|
||||||
.orElseThrow(() -> new GroupNotFoundException("Link nicht im Cache."));
|
|
||||||
|
return links.get(link);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Group> userGroups(String userid) {
|
public List<Group> userGroups(String userid) {
|
||||||
return groups.values().stream()
|
if (!users.containsKey(userid)) {
|
||||||
.filter(group -> group.isMember(userid))
|
return Collections.emptyList();
|
||||||
.collect(Collectors.toUnmodifiableList());
|
}
|
||||||
|
|
||||||
|
return Collections.unmodifiableList(users.get(userid));
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Group> publics() {
|
public List<Group> publics() {
|
||||||
return groups.values().stream()
|
if (!types.containsKey(Type.PUBLIC)) {
|
||||||
.filter(Group::isPublic)
|
return Collections.emptyList();
|
||||||
.collect(Collectors.toUnmodifiableList());
|
}
|
||||||
|
|
||||||
|
return Collections.unmodifiableList(types.get(Type.PUBLIC));
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Group> privates() {
|
public List<Group> privates() {
|
||||||
return groups.values().stream()
|
if (!types.containsKey(Type.PRIVATE)) {
|
||||||
.filter(Group::isPrivate)
|
return Collections.emptyList();
|
||||||
.collect(Collectors.toUnmodifiableList());
|
}
|
||||||
|
|
||||||
|
return Collections.unmodifiableList(types.get(Type.PRIVATE));
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Group> lectures() {
|
public List<Group> lectures() {
|
||||||
return groups.values().stream()
|
if (!types.containsKey(Type.LECTURE)) {
|
||||||
.filter(Group::isLecture)
|
return Collections.emptyList();
|
||||||
.collect(Collectors.toUnmodifiableList());
|
}
|
||||||
|
|
||||||
|
return Collections.unmodifiableList(types.get(Type.LECTURE));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ######################################## SETTERS ##########################################
|
||||||
|
|
||||||
|
|
||||||
|
public void usersPut(String userid, Group group) {
|
||||||
|
if (!users.containsKey(userid)) {
|
||||||
|
users.put(userid, new ArrayList<>());
|
||||||
|
log.debug("Ein User wurde dem Cache hinzugefügt.");
|
||||||
|
}
|
||||||
|
|
||||||
|
users.get(userid).add(group);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void usersRemove(String target, Group group) {
|
||||||
|
if (!users.containsKey(target)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
users.get(target).remove(group);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void groupsPut(UUID groupid, Group group) {
|
||||||
|
groups.put(groupid, group);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void groupsRemove(Group group) {
|
||||||
|
groups.remove(group.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void linksPut(String link, Group group) {
|
||||||
|
links.put(link, group);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void linksRemove(String link) {
|
||||||
|
links.remove(link);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void typesPut(Type type, Group group) {
|
||||||
|
if (!types.containsKey(type)) {
|
||||||
|
types.put(type, new ArrayList<>());
|
||||||
|
log.debug("Ein Typ wurde dem Cache hinzugefügt.");
|
||||||
|
}
|
||||||
|
|
||||||
|
types.get(type).add(group);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void typesRemove(Group group) {
|
||||||
|
if (!types.containsKey(group.getType())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
types.get(group.getType()).remove(group);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@ public class SearchAndInviteController {
|
|||||||
@RequestParam("string") String search) {
|
@RequestParam("string") String search) {
|
||||||
|
|
||||||
String principal = token.getName();
|
String principal = token.getName();
|
||||||
List<Group> groups = searchService.searchPublicGroups(search, principal);
|
List<Group> groups = searchService.search(search, principal);
|
||||||
|
|
||||||
model.addAttribute("groups", groups);
|
model.addAttribute("groups", groups);
|
||||||
|
|
||||||
|
@ -10,7 +10,6 @@ spring.datasource.url = mysql://b4b665d39d0670:cc933ff7@eu
|
|||||||
spring.datasource.username = b4b665d39d0670
|
spring.datasource.username = b4b665d39d0670
|
||||||
spring.datasource.password = cc933ff7
|
spring.datasource.password = cc933ff7
|
||||||
|
|
||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
management.endpoints.web.exposure.include = info,health
|
management.endpoints.web.exposure.include = info,health
|
||||||
server.error.include-stacktrace = always
|
server.error.include-stacktrace = always
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
|
||||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
|
||||||
<script src="https://kit.fontawesome.com/22c0caaa8a.js" crossorigin="anonymous"></script>
|
<!--<script src="https://kit.fontawesome.com/22c0caaa8a.js" crossorigin="anonymous"></script>-->
|
||||||
|
|
||||||
<script type="text/javascript" th:src="@{/js/script.js}"></script>
|
<script type="text/javascript" th:src="@{/js/script.js}"></script>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user