All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.genability.client.api.service.IncentiveService Maven / Gradle / Ivy

The newest version!
package com.genability.client.api.service;

import com.fasterxml.jackson.core.type.TypeReference;
import com.genability.client.api.request.GetIncentiveApplicabilitiesRequest;
import com.genability.client.api.request.GetIncentivesRequest;
import com.genability.client.types.Incentive;
import com.genability.client.types.IncentiveApplicability;
import com.genability.client.types.Response;

public class IncentiveService extends BaseService {
	private static final TypeReference> INCENTIVE_RESPONSE_TYPEREF = 
			new TypeReference>() {};
	private static final TypeReference> INCENTIVE_APPLICABILITY_RESPONSE_TYPEREF = 
			new TypeReference>() {};
	private static final String baseUrl = "beta/incentives";
	
	public Response getIncentives(GetIncentivesRequest request) {
		if(log.isDebugEnabled()) {
			log.debug("getIncentives called");
		}
		
		Response response = this.callGet(baseUrl,
				request.getQueryParams(),
				INCENTIVE_RESPONSE_TYPEREF);
		
		if(log.isDebugEnabled()){
			log.debug("getIncentives completed");
		}
		
		return response;
	}
	
	public Response getIncentive(long masterIncentiveId) {
		if(log.isDebugEnabled()) {
			log.debug("getIncentive called");
		}
		
		String url = String.format("%s/%s", baseUrl, masterIncentiveId);
		Response response = this.callGet(url, null,
				INCENTIVE_RESPONSE_TYPEREF);
		
		if(log.isDebugEnabled()){
			log.debug("getIncentive completed");
		}
		
		return response;
	}

	public Response getIncentiveApplicabilities(GetIncentiveApplicabilitiesRequest request) {
		if(log.isDebugEnabled()) {
			log.debug("getIncentiveApplicabilities called");
		}
		
		String url = String.format("%s/applicabilities", baseUrl);
		Response response = this.callGet(url,
				request.getQueryParams(),
				INCENTIVE_APPLICABILITY_RESPONSE_TYPEREF);
		
		if(log.isDebugEnabled()){
			log.debug("getIncentiveApplicabilities completed");
		}
		
		return response;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy