package ogloszenia.klient_proxy;

import java.math.BigDecimal;

import javax.ws.rs.InternalServerErrorException;
import javax.ws.rs.NotFoundException;
import javax.ws.rs.core.Response;

import org.jboss.resteasy.client.jaxrs.ResteasyClient;
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;

import ogloszenia.klient.Ustawienia;

public class Klient43_Proxy_ZmianaCeny {
	public static void main(String[] args) {
		int id = 2;
		// int id = 24;
		BigDecimal zmiana = new BigDecimal("250.00");
		
		ResteasyClient client = (ResteasyClient)ResteasyClientBuilder.newClient();
        ResteasyWebTarget target = client.target(Ustawienia.URI_SERWISU);
		
		IOgloszenia proxy = target.proxy(IOgloszenia.class);
		System.out.println("Wysyłam zapytania...");
		
		try {
			BigDecimal staraCena = proxy.getCena(id);
			System.out.println("Stara cena: " + staraCena);
			
			BigDecimal nowaCena = staraCena.add(zmiana);
			
			proxy.setCena(id, nowaCena);

			BigDecimal jeszczeNowszaCena = proxy.getCena(id);
			System.out.println("Cena po zapisie: " + jeszczeNowszaCena);
		} catch(NotFoundException e) {
			// ale w zależności od kodu powrotu HTTP pojawią się wyspecjalizowane wyjątki JAX-RS
			System.out.println("404 NOT FOUND");
			
			Response response = e.getResponse();
			String tresc = response.readEntity(String.class);
			System.out.println(tresc);
			
			e.printStackTrace();
		} catch(InternalServerErrorException e) {
			System.out.println("500 INTERNAL SERVER ERROR");
			e.printStackTrace();
		} catch(Exception e) {
			e.printStackTrace();
		}
	}
}
