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

com.googlecode.openbox.foo.DefaultFooClient Maven / Gradle / Ivy

package com.googlecode.openbox.foo;

import org.apache.http.impl.client.CloseableHttpClient;

import com.googlecode.openbox.foo.request.addfoo.AddFooParam;
import com.googlecode.openbox.foo.request.addfoo.AddFooRequest;
import com.googlecode.openbox.foo.request.addfoo.AddFooResponse;
import com.googlecode.openbox.foo.request.addfoo.AddFooResponseHandler;
import com.googlecode.openbox.foo.request.deletefoo.DeleteFooRequest;
import com.googlecode.openbox.foo.request.deletefoo.DeleteFooResponse;
import com.googlecode.openbox.foo.request.deletefoo.DeleteFooResponseHandler;
import com.googlecode.openbox.foo.request.getfoo.GetFooParam;
import com.googlecode.openbox.foo.request.getfoo.GetFooRequest;
import com.googlecode.openbox.foo.request.getfoo.GetFooResponse;
import com.googlecode.openbox.foo.request.getfoo.GetFooResponseHandler;
import com.googlecode.openbox.http.DefaultHttpExecutor;
import com.googlecode.openbox.http.HttpExecutor;
import com.googlecode.openbox.http.responses.JsonResponse;

public class DefaultFooClient extends AbstractFooClient {

	private String url;
	private ClientVersion version;

	public static final String DEFAULT_USER_AGENT = "DemoClient-"
			+ ClientVersion.V1;

	private DefaultFooClient(CloseableHttpClient httpClient, String url,
			ClientVersion version) {
		super(httpClient);
		this.url = url;
		this.version = version;
	}

	public static DefaultFooClient newInstance(CloseableHttpClient httpClient,
			String url, ClientVersion version) {
		return new DefaultFooClient(httpClient, url, version);

	}

	@Override
	public JsonResponse addFoo(AddFooParam params) {

		AddFooRequest request = new AddFooRequest(url, version, params);

		HttpExecutor> httpExecutor = new DefaultHttpExecutor>(
				getHttpClient(), request, AddFooResponseHandler.newInstance());

		try {
			registerAllPlugins(httpExecutor);
			httpExecutor.execute();
			return httpExecutor.getResponse();
		} catch (Exception e) {
			throw FooClientException.create(e);
		}
	}

	@Override
	public JsonResponse getFoo(GetFooParam params) {
		GetFooRequest request = new GetFooRequest(url, version,
				params.getFooId());
		String password = params.getPassword();
		if (null != password) {
			request.setFooPassword(password);
		}
		HttpExecutor> httpExecutor = new DefaultHttpExecutor>(
				getHttpClient(), request,
				GetFooResponseHandler.newInstance());

		try {
			registerAllPlugins(httpExecutor);
			httpExecutor.execute();
			return httpExecutor.getResponse();
		} catch (Exception e) {
			throw FooClientException.create(e);
		}
	}

	@Override
	public JsonResponse deleteFoo(String meetingId) {
		DeleteFooRequest request = new DeleteFooRequest(url, version, meetingId);

		HttpExecutor> httpExecutor = new DefaultHttpExecutor>(
				getHttpClient(), request,
				DeleteFooResponseHandler.newInstance());

		try {
			registerAllPlugins(httpExecutor);
			httpExecutor.execute();
			return httpExecutor.getResponse();
		} catch (Exception e) {
			throw FooClientException.create(e);
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy