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

com.podio.ExceptionFilter Maven / Gradle / Ivy

There is a newer version: 0.7.9
Show newest version
package com.podio;

import java.util.Map;

import javax.ws.rs.core.Response.Status.Family;

import com.sun.jersey.api.client.ClientHandlerException;
import com.sun.jersey.api.client.ClientRequest;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.GenericType;
import com.sun.jersey.api.client.filter.ClientFilter;

public class ExceptionFilter extends ClientFilter {

	@Override
	public ClientResponse handle(ClientRequest cr)
			throws ClientHandlerException {
		try {
			ClientResponse response = getNext().handle(cr);
			if (response.getClientResponseStatus().getFamily() != Family.SUCCESSFUL) {
				Map errorData = response
						.getEntity(new GenericType>() {
						});

				throw new APIApplicationException(
						response.getClientResponseStatus(),
						(String) errorData.get("error"),
						(String) errorData.get("error_description"),
						(Map) errorData.get("parameters"));
			} else {
				return response;
			}
		} catch (ClientHandlerException e) {
			throw new APITransportException(e.getCause());
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy