Alles mögliche
Some checks failed
Host-Based Deploy (Java 21 Fix) / build-and-run (push) Has been cancelled

This commit is contained in:
2026-04-08 00:53:49 +02:00
parent 5ffb99c9b5
commit a13b8e894f
78 changed files with 2833 additions and 650 deletions

View File

@@ -1,5 +1,6 @@
package de.oaa.xxx.user;
import java.nio.charset.StandardCharsets;
import java.security.Principal;
import java.time.LocalDate;
import java.time.Period;
@@ -13,8 +14,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseCookie;
import org.springframework.http.ResponseEntity;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@@ -24,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import de.oaa.xxx.config.CookieFactory;
import de.oaa.xxx.games.bdsm.entity.BdsmDefaultsEntity;
import de.oaa.xxx.games.bdsm.repository.BdsmDefaultsRepository;
import de.oaa.xxx.games.chastity.common.BaseLockRepository;
@@ -39,9 +41,6 @@ import de.oaa.xxx.registration.RegistrationRepository;
import de.oaa.xxx.social.entity.MessageCause;
import de.oaa.xxx.social.entity.NotificationPreferenceEntity;
import de.oaa.xxx.social.repository.NotificationPreferenceRepository;
import org.springframework.util.DigestUtils;
import java.nio.charset.StandardCharsets;
@RestController
@RequestMapping("/user")
@@ -60,6 +59,7 @@ public class UserController {
private final TTLockService ttLockService;
private final BaseLockRepository baseLockRepository;
private final BaseLockTemplateRepository baseLockTemplateRepository;
private final CookieFactory cookieFactory;
public UserController(UserRepository userRepository,
RegistrationRepository registrationRepository,
@@ -71,7 +71,8 @@ public class UserController {
TTAuthService ttAuthService,
TTLockService ttLockService,
BaseLockRepository baseLockRepository,
BaseLockTemplateRepository baseLockTemplateRepository) {
BaseLockTemplateRepository baseLockTemplateRepository,
CookieFactory cookieFactory) {
this.userRepository = userRepository;
this.registrationRepository = registrationRepository;
this.notificationPreferenceRepository = notificationPreferenceRepository;
@@ -83,6 +84,7 @@ public class UserController {
this.ttLockService = ttLockService;
this.baseLockRepository = baseLockRepository;
this.baseLockTemplateRepository = baseLockTemplateRepository;
this.cookieFactory = cookieFactory;
}
record ProfilePictureRequest(String picture, String pictureHq) {}
@@ -348,14 +350,8 @@ public class UserController {
userService.deleteAccount(userId, email);
ResponseCookie cookie = ResponseCookie.from("jwt", "")
.httpOnly(true)
.sameSite("Strict")
.path("/")
.maxAge(0)
.build();
return ResponseEntity.ok()
.header(HttpHeaders.SET_COOKIE, cookie.toString())
.header(HttpHeaders.SET_COOKIE, cookieFactory.jwtCookie("", java.time.Duration.ZERO).toString())
.build();
}
@@ -501,6 +497,31 @@ public class UserController {
}
}
record NewMemberDto(UUID userId, String name, String profilePicture,
Integer alter, String geschlecht, String neigung,
String datingStadt, String beschreibung) {}
@GetMapping("/new-members")
public ResponseEntity<List<NewMemberDto>> getNewMembers(Principal principal) {
UUID myId = principal != null ? userService.requireUser(principal).getUserId() : null;
LocalDate since = LocalDate.now().minusDays(14);
List<NewMemberDto> result = userRepository
.findByRegistrierungsdatumAfterOrderByRegistrierungsdatumDesc(since)
.stream()
.filter(u -> !u.getUserId().equals(myId))
.map(u -> new NewMemberDto(
u.getUserId(),
u.getName(),
u.getProfilePictureHq() != null ? u.getProfilePictureHq() : u.getProfilePicture(),
u.getAlter(),
u.getGeschlecht() != null ? u.getGeschlecht().name() : null,
u.getNeigung() != null ? u.getNeigung().name() : null,
u.getDatingStadt(),
u.getBeschreibung()))
.collect(Collectors.toList());
return ResponseEntity.ok(result);
}
record LocationFilterRequest(String filterCity, Double filterLat, Double filterLon, Integer filterMaxDistKm) {}
@PutMapping("/me/location-filter")