mirror of
https://github.com/imgfloat/server.git
synced 2026-02-05 11:49:25 +00:00
Shrink patch size
This commit is contained in:
@@ -1,5 +1,8 @@
|
|||||||
package dev.kruhlmann.imgfloat.model;
|
package dev.kruhlmann.imgfloat.model;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
public class AssetEvent {
|
public class AssetEvent {
|
||||||
public enum Type {
|
public enum Type {
|
||||||
CREATED,
|
CREATED,
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
package dev.kruhlmann.imgfloat.model;
|
package dev.kruhlmann.imgfloat.model;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a partial update for an {@link Asset}. Only the fields that changed
|
* Represents a partial update for an {@link Asset}. Only the fields that changed
|
||||||
* for a given operation are populated to reduce payload sizes sent over WebSocket.
|
* for a given operation are populated to reduce payload sizes sent over WebSocket.
|
||||||
*/
|
*/
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
public record AssetPatch(
|
public record AssetPatch(
|
||||||
String id,
|
String id,
|
||||||
Double x,
|
Double x,
|
||||||
|
|||||||
@@ -290,11 +290,18 @@ public class ChannelDirectoryService {
|
|||||||
return assetRepository.findById(assetId)
|
return assetRepository.findById(assetId)
|
||||||
.filter(a -> normalized.equals(a.getBroadcaster()))
|
.filter(a -> normalized.equals(a.getBroadcaster()))
|
||||||
.map(asset -> {
|
.map(asset -> {
|
||||||
asset.setHidden(request.isHidden());
|
boolean wasHidden = asset.isHidden();
|
||||||
|
boolean hidden = request.isHidden();
|
||||||
|
if (wasHidden == hidden) {
|
||||||
|
return AssetView.from(normalized, asset);
|
||||||
|
}
|
||||||
|
|
||||||
|
asset.setHidden(hidden);
|
||||||
assetRepository.save(asset);
|
assetRepository.save(asset);
|
||||||
AssetView view = AssetView.from(normalized, asset);
|
AssetView view = AssetView.from(normalized, asset);
|
||||||
AssetPatch patch = AssetPatch.fromVisibility(asset);
|
AssetPatch patch = AssetPatch.fromVisibility(asset);
|
||||||
messagingTemplate.convertAndSend(topicFor(broadcaster), AssetEvent.visibility(broadcaster, patch, view));
|
AssetView payload = hidden ? null : view;
|
||||||
|
messagingTemplate.convertAndSend(topicFor(broadcaster), AssetEvent.visibility(broadcaster, patch, payload));
|
||||||
return view;
|
return view;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user