package org.rakam.plugin.user;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.rakam.collection.Event;
import org.rakam.server.http.annotations.ApiParam;
public class User
{
public Object id;
public final ObjectNode properties;
public final UserContext api;
@JsonCreator
public User(@ApiParam(value = "id", description = "The value may be a string or a numeric value.") Object id,
@ApiParam("api") UserContext api,
@ApiParam("properties") ObjectNode properties)
{
this.id = id;
this.api = api;
this.properties = properties;
}
public void setId(Object id)
{
this.id = id;
}
public static class UserContext
{
@JsonProperty(value = "library") public final Event.Library library;
@JsonProperty(value = "api_key") public final String apiKey;
@JsonProperty(value = "upload_time") public final Long uploadTime;
@JsonProperty(value = "checksum") public final String checksum;
@JsonCreator
public UserContext(@ApiParam("api_key") String apiKey,
@ApiParam(value = "library", required = false) Event.Library library,
@ApiParam(value = "api_library", required = false) String apiLibrary,
@ApiParam(value = "api_version", required = false) String apiVersion,
@ApiParam(value = "upload_time", required = false) Long uploadTime,
@ApiParam(value = "checksum", required = false) String checksum)
{
this.apiKey = apiKey;
this.library = library != null ? library : new Event.Library(apiLibrary, apiVersion);
this.checksum = checksum;
this.uploadTime = uploadTime;
}
}
}