ServerResponse.java

package io.featureprobe.api.dto;

import io.featureprobe.api.base.model.JSEvent;
import com.featureprobe.sdk.server.model.Segment;
import com.featureprobe.sdk.server.model.Toggle;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

@Data
@NoArgsConstructor
public class ServerResponse {

    private Long version;

    private Long debugUntilTime;
    private Map<String, Toggle> toggles;
    private Map<String, Segment> segments;

    private Map<String, JSEvent> events;

    public ServerResponse(List<Toggle> toggleMessages, List<Segment> segmentMessages, List<JSEvent> eventMassages,
                          Long version, Long debugUntilTime) {
        toggles = toggleMessages.stream().collect(Collectors.toMap(Toggle::getKey, Function.identity()));
        segments = segmentMessages.stream().collect(Collectors.toMap(Segment::getUniqueId, Function.identity()));
        events = eventMassages.stream().collect(Collectors.toMap(JSEvent::getName, Function.identity()));
        this.version = version;
        this.debugUntilTime = debugUntilTime;
    }

}