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

com.genability.client.api.service.TariffService 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.DeleteTariffRequest;
import com.genability.client.api.request.GetTariffRequest;
import com.genability.client.api.request.GetTariffsRequest;
import com.genability.client.types.Fields;
import com.genability.client.types.Response;
import com.genability.client.types.Tariff;

public class TariffService extends BaseService {

    private static final TypeReference> TARIFF_RESPONSE_TYPEREF = new TypeReference>() {};
	
	/**
	 * Calls the REST service to get a list of tariffs based on the arguments passed in.
	 * 
	 * @param request The request.
	 * @return The return value.
	 */
	public Response getTariffs(GetTariffsRequest request) {
		
		if(log.isDebugEnabled()) log.debug("getTariffs called");
		
		request.setFields(Fields.EXT);
		
		Response response = this.callGet(
				"public/tariffs", 
				request.getQueryParams(),
				TARIFF_RESPONSE_TYPEREF);
		
		if(log.isDebugEnabled()) log.debug("getTariffs completed");
		
		return response;

		
	}
	

	/**
	 * Calls the REST service to get one tariff based on the arguments passed in.
	 * 
	 * @param request The request.
	 * @return The return value.
	 */
	public Response getTariff(GetTariffRequest request) {
		
		if(log.isDebugEnabled()) log.debug("getTariff called");
		
		Response response = this.callGet(
				"public/tariffs/" + request.getMasterTariffId(),
				request.getQueryParams(),
				TARIFF_RESPONSE_TYPEREF);
		
		if(log.isDebugEnabled()) log.debug("getTariff completed");
		
		return response;
		
	}
	
	/**
	 * Calls the REST service to get one tariff based on the arguments passed
	 * in.
	 * 
	 * @param request The request.
	 * @return The return value.
	 */
	public Response getTariffProperties(GetTariffRequest request) {

		if (log.isDebugEnabled())
			log.debug("getTariffProperties called");

		Response response = this.callGet("public/tariffs/properties",
				request.getQueryParams(), TARIFF_RESPONSE_TYPEREF);

		if (log.isDebugEnabled())
			log.debug("getTariffProperties completed");

		return response;

	}
	
	public Response addTariff(Tariff tariff) {

		if(log.isDebugEnabled()) log.debug("addTariff called");

		Response response = this.callPost(
				"beta/tariffs",
				tariff,
				TARIFF_RESPONSE_TYPEREF);

		if(log.isDebugEnabled()) log.debug("addTariff completed");

		return response;

	}

	public Response updateTariff(Tariff tariff) {

		if(log.isDebugEnabled()) log.debug("updateTariff called");

		String uri = "beta/tariffs";
		if (tariff.getTariffId() != null) {
			uri += "/" + tariff.getTariffId();
		}

		Response response = this.callPut(
				uri,
				tariff,
				TARIFF_RESPONSE_TYPEREF);

		if(log.isDebugEnabled()) log.debug("updateTariff completed");

		return response;

	}


	public Response deleteTariff(DeleteTariffRequest request) {

		if(log.isDebugEnabled()) log.debug("deleteTariff called");

		String uri = "beta/tariffs";
		if (request.getTariffId() != null) {
			uri += "/" + request.getTariffId();
		}

		Response response = this.callDelete(
				uri,
				request.getQueryParams(),
				TARIFF_RESPONSE_TYPEREF);

		if(log.isDebugEnabled()) log.debug("deleteTariff completed");

		return response;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy