package org.rakam.util; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import org.rakam.report.QueryResult; import org.rakam.server.http.annotations.ApiParam; import static io.netty.handler.codec.http.HttpResponseStatus.INTERNAL_SERVER_ERROR; public class SuccessMessage { private static final SuccessMessage SUCCESS = new SuccessMessage(null); public final boolean success = true; @JsonInclude(JsonInclude.Include.NON_NULL) public final String message; @JsonCreator private SuccessMessage(@ApiParam("message") String message) { this.message = message; } public static SuccessMessage success() { return SUCCESS; } public static SuccessMessage success(String message) { return new SuccessMessage(message); } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof SuccessMessage)) return false; SuccessMessage that = (SuccessMessage) o; if (message != null ? !message.equals(that.message) : that.message != null) return false; return true; } @Override public int hashCode() { return message == null ? 1 : message.hashCode(); } public static SuccessMessage map(QueryResult queryResult) { if(queryResult.isFailed()) { throw new RakamException(queryResult.getError().message, INTERNAL_SERVER_ERROR); } else { return SuccessMessage.success(); } } }