com.genability.client.api.service.ProfileService Maven / Gradle / Ivy
The newest version!
package com.genability.client.api.service;
import java.text.MessageFormat;
import com.fasterxml.jackson.core.type.TypeReference;
import com.genability.client.api.request.DeleteProfileRequest;
import com.genability.client.api.request.GetProfileRequest;
import com.genability.client.api.request.GetProfilesRequest;
import com.genability.client.api.request.ReadingDataRequest;
import com.genability.client.types.Profile;
import com.genability.client.types.ReadingData;
import com.genability.client.types.Response;
public class ProfileService extends BaseService {
private static final TypeReference> PROFILE_RESPONSE_TYPEREF = new TypeReference>() {};
private static final TypeReference> READING_DATA_RESPONSE_TYPEREF = new TypeReference>() {
};
/**
* Calls the REST service to get a Profile based on the arguments passed in.
*
* @param request The request.
* @return The return value.
*/
public Response getProfile(GetProfileRequest request) {
if(log.isDebugEnabled()) log.debug("getProfile called");
// Set uri based on if providerProfileId was used
String uri = "v1/profiles";
if (request.getProviderProfileId() != null
&& request.getProviderProfileId().length() != 0) {
uri += "/pid/" + request.getProviderProfileId();
} else if (request.getProfileId() != null
&& request.getProfileId().length() != 0) {
uri += "/" + request.getProfileId();
}
Response response = this.callGet(uri,
request.getQueryParams(), PROFILE_RESPONSE_TYPEREF);
if (log.isDebugEnabled())
log.debug("getProfile completed");
return response;
}
/**
* Calls the REST service to get Profiles based on the arguments passed in.
*
* @param request The request.
* @return The return value.
*/
public Response getProfiles(GetProfilesRequest request) {
if(log.isDebugEnabled()) log.debug("getProfiles called");
String uri = "v1/profiles";
Response response = this.callGet(
uri,
request.getQueryParams(),
PROFILE_RESPONSE_TYPEREF);
if(log.isDebugEnabled()) log.debug("getProfiles completed");
return response;
}
public Response addProfile(Profile profile) {
if (log.isDebugEnabled())
log.debug("addProfile called");
Response response = this.callPost("v1/usage/profiles",
profile, PROFILE_RESPONSE_TYPEREF);
if (log.isDebugEnabled())
log.debug("addProfile completed");
return response;
}
public Response updateProfile(Profile profile) {
if (log.isDebugEnabled())
log.debug("updateProfile called");
String uri = "v1/profiles";
Response response = this.callPut(uri, profile,
PROFILE_RESPONSE_TYPEREF);
if (log.isDebugEnabled())
log.debug("updateProfile completed");
return response;
}
/**
* Calls the REST service to delete a Profile based on the arguments passed in.
*
* @param request The request.
* @return The return value.
*/
public Response deleteProfile(DeleteProfileRequest request) {
if(log.isDebugEnabled()) log.debug("deleteProfile called");
String profileId = request.getProfileId();
if (profileId == null || profileId.isEmpty()) {
throw new GenabilityException("profileId must be set");
}
String uri = "v1/profiles/" + profileId;
Response response = this.callDelete(uri, request.getQueryParams(), PROFILE_RESPONSE_TYPEREF);
if (log.isDebugEnabled()) log.debug("deleteProfile completed");
return response;
}
public Response updateReadings(ReadingDataRequest request) {
if (log.isDebugEnabled())
log.debug("updateReadings called");
String uri = "v1/profiles/{0}/readings";
if (request.getUsageProfileId() != null) {
uri = MessageFormat.format(uri, request.getUsageProfileId());
}
Response response = this.callPut(uri, request,
READING_DATA_RESPONSE_TYPEREF);
if (log.isDebugEnabled())
log.debug("updateReadings completed");
return response;
}
public Response addReadings(ReadingDataRequest request) {
if (log.isDebugEnabled())
log.debug("addReadings called");
String uri = "v1/profiles/{0}/readings";
if (request.getUsageProfileId() != null) {
uri = MessageFormat.format(uri, request.getUsageProfileId());
}
Response response = this.callPost(uri, request,
READING_DATA_RESPONSE_TYPEREF);
if (log.isDebugEnabled())
log.debug("addReadings completed");
return response;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy