package sklep.hello;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

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

@Path("/dt")
@Produces("text/plain")
public class Time {
	// Jeśli aplikacja działa z domyślnymi ustawieniami (czyli nie definiuje metody getSingletons),
	// to obiekt tej klasy, a co za tym idzie pole dt, jest tworzony za każdym razem gdy przychodzi nowy request (polityka "per request")
	private LocalDateTime dt = LocalDateTime.now();

	@GET
	public LocalDateTime getFullInfo() {
		return dt;
	}
	
	@Path("/date")
	@GET
	public LocalDate getDate() {
		return dt.toLocalDate();
	}
	
	@Path("/dow")
	@GET
	public int getDOW() {
		return dt.getDayOfWeek().getValue();
	}
	
	@Path("/doy")
	@GET
	public int getDOY() {
		return dt.getDayOfYear();
	}
	
	@Path("/time")
	@GET
	public LocalTime getTime() {
		return dt.toLocalTime();
	}

	@Path("/time/hour")
	@GET
	public int getHour() {
		return dt.getHour();
	}

	@Path("/time/minute")
	@GET
	public int getMinute() {
		return dt.getMinute();
	}

	@Path("/time/second")
	@GET
	public int getSecond() {
		return dt.getSecond();
	}
	
	@Path("/time/nano")
	@GET
	public int getNano() {
		return dt.getNano();
	}
}
