X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FCATS.java;h=df85172871cee09413a02baa34914419b7539208;hb=af932253d612fbbbf1dcead6107df6fc53896282;hp=cac16694d81a83954b3d12288edbd9d7c36124d7;hpb=f3854f902e8c2c14bcc3c16baf82134ca5147494;p=gigi.git diff --git a/src/org/cacert/gigi/dbObjects/CATS.java b/src/org/cacert/gigi/dbObjects/CATS.java index cac16694..df851728 100644 --- a/src/org/cacert/gigi/dbObjects/CATS.java +++ b/src/org/cacert/gigi/dbObjects/CATS.java @@ -6,6 +6,7 @@ import java.util.HashMap; import org.cacert.gigi.database.GigiPreparedStatement; import org.cacert.gigi.database.GigiResultSet; +import org.cacert.gigi.util.TimeConditions; public class CATS { @@ -42,6 +43,11 @@ public class CATS { } } + /** + * The maximal number of months a passed test is considered "recent". + */ + public static final int TEST_MONTHS = TimeConditions.getInstance().getTestMonths(); + private static HashMap names = new HashMap<>(); private CATS() { @@ -89,4 +95,15 @@ public class CATS { ps.execute(); } } + + public static boolean isInCatsLimit(int uID, int testID) { + try (GigiPreparedStatement ps = new GigiPreparedStatement("SELECT 1 FROM `cats_passed` WHERE `user_id` = ? AND `variant_id` = ? AND`pass_date` > (now() - interval '1 months' * ?)")) { + ps.setInt(1, uID); + ps.setInt(2, testID); + ps.setInt(3, TEST_MONTHS); + + GigiResultSet rs = ps.executeQuery(); + return rs.next(); + } + } }