package ogloszenia.rest5;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

import ogloszenia.baza.DostepDoBazy;
import ogloszenia.baza.OgloszeniaDAO;
import ogloszenia.exn.BladBazyDanych;
import ogloszenia.exn.NieznanyRekord;
import ogloszenia.model.Samochodowe;
import ogloszenia.util.FotoUtil;

public class ROgloszenie {
	private int idOgloszenia;
	
	ROgloszenie(int idOgloszenia) {
		this.idOgloszenia = idOgloszenia;
	}

	@GET
	@Produces({"application/xml", "application/json", "text/plain"})
	public Samochodowe odczytajJedno() throws BladBazyDanych, NieznanyRekord {
		try(DostepDoBazy db = new DostepDoBazy()) {
			OgloszeniaDAO dao = db.ogloszeniaDAO();
			return dao.odczytajWgId(idOgloszenia);
		}
	}
	
	@GET
	@Produces("text/html")
	public String jednoOgloszenie() throws BladBazyDanych, NieznanyRekord {
		try (DostepDoBazy db = new DostepDoBazy()) {
			OgloszeniaDAO dao = db.ogloszeniaDAO();
			Samochodowe ogloszenie = dao.odczytajWgId(idOgloszenia);
			StringBuilder wynik = new StringBuilder();
            wynik.append("<html><body>");
            wynik.append(ogloszenie.toHtml());
            wynik.append("</body></html>");
            return wynik.toString();
		}
	}
	
	@Path("/opis")
	public ROpis obslugaOpisu() {
		// tutaj mamy podzasób podzasobu... to "przekierowywanie" można kontynuować
		return new ROpis(idOgloszenia);
	}

	@GET
	@Path("/foto")
	@Produces("image/jpeg")
	public byte[] czytajFoto() throws NieznanyRekord {
		return FotoUtil.wczytajFoto(idOgloszenia);
	}
}
