package com.vtence.molecule.middlewares;
import com.vtence.molecule.Request;
import com.vtence.molecule.Response;
import java.time.Clock;
import static com.vtence.molecule.http.HeaderNames.DATE;
public class DateHeader extends AbstractMiddleware {
private final Clock clock;
public DateHeader() {
this(Clock.systemDefaultZone());
}
public DateHeader(Clock clock) {
this.clock = clock;
}
public void handle(Request request, Response response) throws Exception {
forward(request, response).whenSuccessful(this::setDateHeaderIfMissing);
}
private void setDateHeaderIfMissing(Response response) {
if (!response.hasHeader(DATE)) {
response.header(DATE, clock.instant());
}
}
}