fix for Partey, new streaming preparations
This commit is contained in:
parent
fad01fc0d7
commit
3bcc0efe0d
@ -63,16 +63,19 @@ public class RoomController extends DebugLogger {
|
||||
*/
|
||||
@GetMapping("/access")
|
||||
public MemberData access(@RequestParam("userIdentifier") String userIdentifier,
|
||||
@RequestParam("roomId") String roomId, HttpServletRequest request) {
|
||||
@RequestParam("roomId") Optional<String> roomId,
|
||||
@RequestParam("ipAddress") Optional<String> ipAddress, HttpServletRequest request) {
|
||||
parteyApiAuthentication.authenticateRequest(request);
|
||||
|
||||
debugPrintRequest(request);
|
||||
|
||||
Room room = parteyMapManager.parseRoom(roomId, request);
|
||||
if (roomId.isPresent()) {
|
||||
Room room = parteyMapManager.parseRoom(roomId.get(), request);
|
||||
|
||||
if (!worldMapCache.contains(room.getUrl())) {
|
||||
worldMapCache.add(room.getUrl());
|
||||
}
|
||||
}
|
||||
|
||||
MemberData memberData = new MemberData();
|
||||
memberData.setUserUuid(userIdentifier);
|
||||
|
@ -12,12 +12,14 @@ import org.springframework.util.StringUtils;
|
||||
import org.springframework.validation.Errors;
|
||||
import org.springframework.validation.Validator;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.querydsl.core.BooleanBuilder;
|
||||
|
||||
import de.bstly.we.businesslogic.SystemPropertyManager;
|
||||
import de.bstly.we.partey.timeslot.businesslogic.TimeslotManager;
|
||||
import de.bstly.we.partey.timeslot.model.QTimeslot;
|
||||
import de.bstly.we.partey.timeslot.model.Timeslot;
|
||||
import de.bstly.we.partey.timeslot.model.TimeslotType;
|
||||
import de.bstly.we.partey.timeslot.repository.TimeslotRepository;
|
||||
|
||||
/**
|
||||
@ -34,7 +36,6 @@ public class TimeslotValidator implements Validator {
|
||||
private SystemPropertyManager systemPropertyManager;
|
||||
private QTimeslot qTimeslot = QTimeslot.timeslot;
|
||||
|
||||
|
||||
/*
|
||||
* @see org.springframework.validation.Validator#supports(java.lang.Class)
|
||||
*/
|
||||
@ -43,9 +44,9 @@ public class TimeslotValidator implements Validator {
|
||||
return clazz.isAssignableFrom(Timeslot.class);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @see org.springframework.validation.Validator#validate(java.lang.Object, org.springframework.validation.Errors)
|
||||
* @see org.springframework.validation.Validator#validate(java.lang.Object,
|
||||
* org.springframework.validation.Errors)
|
||||
*/
|
||||
@Override
|
||||
public void validate(Object target, Errors errors) {
|
||||
@ -80,6 +81,19 @@ public class TimeslotValidator implements Validator {
|
||||
// same type
|
||||
timeQuery.and(qTimeslot.type.eq(timeslot.getType()));
|
||||
|
||||
switch (timeslot.getType()) {
|
||||
case AUDIO:
|
||||
case AUDIO_STREAM:
|
||||
timeQuery.and(qTimeslot.type
|
||||
.in(Lists.newArrayList(TimeslotType.AUDIO, TimeslotType.AUDIO_STREAM)));
|
||||
break;
|
||||
case VIDEO:
|
||||
case VIDEO_STREAM:
|
||||
timeQuery.and(qTimeslot.type
|
||||
.in(Lists.newArrayList(TimeslotType.VIDEO, TimeslotType.VIDEO_STREAM)));
|
||||
break;
|
||||
}
|
||||
|
||||
// ends after start
|
||||
timeQuery
|
||||
.and(qTimeslot.ends.after(timeslot.getStarts().minus(
|
||||
@ -128,10 +142,16 @@ public class TimeslotValidator implements Validator {
|
||||
|
||||
switch (timeslot.getType()) {
|
||||
case AUDIO:
|
||||
validateTypeAudio(timeslot, errors);
|
||||
validateShare(timeslot, errors);
|
||||
break;
|
||||
case VIDEO:
|
||||
validateTypeVideo(timeslot, errors);
|
||||
validateShare(timeslot, errors);
|
||||
break;
|
||||
case AUDIO_STREAM:
|
||||
validateTypeAudioStream(timeslot, errors);
|
||||
break;
|
||||
case VIDEO_STREAM:
|
||||
validateTypeVideoStream(timeslot, errors);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -143,8 +163,24 @@ public class TimeslotValidator implements Validator {
|
||||
* @param timeslot the timeslot
|
||||
* @param errors the errors
|
||||
*/
|
||||
public void validateTypeAudio(Timeslot timeslot, Errors errors) {
|
||||
public void validateShare(Timeslot timeslot, Errors errors) {
|
||||
timeslot.setStream(null);
|
||||
timeslot.setSecret(null);
|
||||
|
||||
if (!StringUtils.hasText(timeslot.getShare())) {
|
||||
errors.rejectValue("share", "REQUIRED");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate type audio.
|
||||
*
|
||||
* @param timeslot the timeslot
|
||||
* @param errors the errors
|
||||
*/
|
||||
public void validateTypeAudioStream(Timeslot timeslot, Errors errors) {
|
||||
timeslot.setStream(null);
|
||||
timeslot.setShare(null);
|
||||
if (timeslot.getId() != null && timeslotRepository.existsById(timeslot.getId())) {
|
||||
Timeslot existing = timeslotRepository.findById(timeslot.getId()).get();
|
||||
timeslot.setSecret(existing.getSecret());
|
||||
@ -161,8 +197,9 @@ public class TimeslotValidator implements Validator {
|
||||
* @param timeslot the timeslot
|
||||
* @param errors the errors
|
||||
*/
|
||||
public void validateTypeVideo(Timeslot timeslot, Errors errors) {
|
||||
public void validateTypeVideoStream(Timeslot timeslot, Errors errors) {
|
||||
timeslot.setSecret(null);
|
||||
timeslot.setShare(null);
|
||||
if (!StringUtils.hasText(timeslot.getStream())) {
|
||||
errors.rejectValue("stream", "REQUIRED");
|
||||
}
|
||||
|
@ -46,6 +46,8 @@ public class Timeslot implements UserData {
|
||||
@Column(name = "description", nullable = true)
|
||||
@Lob
|
||||
private String description;
|
||||
@Column(name = "share", nullable = true)
|
||||
private String share;
|
||||
@Column(name = "stream", nullable = true)
|
||||
private String stream;
|
||||
@Column(name = "secret", nullable = true)
|
||||
@ -199,6 +201,20 @@ public class Timeslot implements UserData {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the share
|
||||
*/
|
||||
public String getShare() {
|
||||
return share;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param share the share to set
|
||||
*/
|
||||
public void setShare(String share) {
|
||||
this.share = share;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the stream.
|
||||
*
|
||||
|
@ -7,5 +7,5 @@ package de.bstly.we.partey.timeslot.model;
|
||||
* The Enum TimeslotType.
|
||||
*/
|
||||
public enum TimeslotType {
|
||||
VIDEO, AUDIO
|
||||
VIDEO, AUDIO, VIDEO_STREAM, AUDIO_STREAM
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user