package org.xcolab.client.members; import org.xcolab.client.members.pojo.AnalyticsUserEvent; import org.xcolab.client.members.pojo.Member; import org.xcolab.util.clients.CoLabService; import org.xcolab.util.http.ServiceRequestUtils; import org.xcolab.util.http.client.RestResource1; import org.xcolab.util.http.client.RestResource2L; import org.xcolab.util.http.client.RestService; public final class AnalyticsClient { private static final RestService memberService = new RestService(CoLabService.MEMBER, ServiceRequestUtils.getNamespace()); private static final RestResource1<Member, Long> memberResource = new RestResource1<>(memberService, "members", Member.TYPES); private static final RestResource2L<Member, AnalyticsUserEvent> analyticsUserEventResource = new RestResource2L<>(memberResource, "analyticsEvents", AnalyticsUserEvent.TYPES); public static AnalyticsUserEvent create(long memberId, String idString, String category, String action, String label, int value) { AnalyticsUserEvent analyticsUserEvent = new AnalyticsUserEvent(); analyticsUserEvent.setUserId(memberId); analyticsUserEvent.setIdString(idString); analyticsUserEvent.setCategory(category); analyticsUserEvent.setAction(action); analyticsUserEvent.setLabel(label); analyticsUserEvent.setValue(value); return analyticsUserEventResource.resolveParent(memberResource.id(memberId)) .create(analyticsUserEvent).execute(); } public static boolean exists(long memberId, String idString) { return analyticsUserEventResource.resolveParent(memberResource.id(memberId)) .service(idString, "exists", Boolean.class) .get(); } }