/**
*
*/
package com.xively.client.http.impl;
import com.xively.client.http.DefaultRequestHandler;
import com.xively.client.http.DefaultRequestHandler.HttpMethod;
import com.xively.client.http.Response;
import com.xively.client.http.api.ActivationRequester;
import com.xively.client.model.DeviceActivation;
import com.xively.client.utils.HmacUtils;
/**
* @author bonino
* @param <T>
* @param <I>
*
*/
public class ActivationRequesterImpl extends
AbstractRequester<String, DeviceActivation> implements
ActivationRequester
{
private static final String RESOURCES_PATH = "devices/%s/activate";
@Override
protected String getResourcesPath()
{
return ActivationRequesterImpl.RESOURCES_PATH;
}
@Override
protected String getResourcePath(String id)
{
return String.format(ActivationRequesterImpl.RESOURCES_PATH, id);
}
@Override
protected Class<ActivationRequesterImpl> getObjectClass()
{
return ActivationRequesterImpl.class;
}
@Override
public DeviceActivation activateDevice(String productSecret,
String deviceSerial)
{
DeviceActivation toReturn = null;
// compute the activation code
String activationCode = HmacUtils.hmacSha1(productSecret, deviceSerial);
// get the response
Response<DeviceActivation> response = DefaultRequestHandler
.getInstance().doRequest(HttpMethod.GET,
getResourcePath(activationCode));
// extract the activation object
toReturn = response.getBodyAsObject(DeviceActivation.class);
return toReturn;
}
}