/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.mastfrog.acteur;
import static com.mastfrog.acteur.headers.Headers.IF_UNMODIFIED_SINCE;
import static io.netty.handler.codec.http.HttpResponseStatus.PRECONDITION_FAILED;
import java.util.Map;
import javax.inject.Inject;
import org.joda.time.DateTime;
/**
*
* @author Tim Boudreau
*/
public class CheckIfUnmodifiedSinceHeader extends Acteur {
@Inject
CheckIfUnmodifiedSinceHeader(HttpEvent event, Page page) {
DateTime dt = event.getHeader(IF_UNMODIFIED_SINCE);
if (dt != null) {
DateTime pageLastModified = page.getResponseHeaders().getLastModified();
if (pageLastModified != null) {
boolean modSince = pageLastModified.getMillis() > dt.getMillis();
if (modSince) {
reply(PRECONDITION_FAILED);
return;
}
}
}
next();
}
@Override
public void describeYourself(Map<String, Object> into) {
into.put("Supports If-Unmodified-Since", true);
}
}