X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FCATS.java;h=a353e1684e7ff9bd81c63bf1cd3f5966b8bc7ca1;hp=cac16694d81a83954b3d12288edbd9d7c36124d7;hb=f39e1a18e4ceed8ad6edb7fc4b7e4d1879703dd5;hpb=bb73860be30af60fdcc26709066d932f91cb02fc diff --git a/src/org/cacert/gigi/dbObjects/CATS.java b/src/org/cacert/gigi/dbObjects/CATS.java index cac16694..a353e168 100644 --- a/src/org/cacert/gigi/dbObjects/CATS.java +++ b/src/org/cacert/gigi/dbObjects/CATS.java @@ -42,6 +42,11 @@ public class CATS { } } + /** + * The maximal number of months a passed test is considered "recent". + */ + public static final int TEST_MONTHS = 12; + private static HashMap names = new HashMap<>(); private CATS() { @@ -89,4 +94,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(); + } + } }