]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/wot/AssuranceForm.java
Fix visuals, output maxpoints
[gigi.git] / src / org / cacert / gigi / pages / wot / AssuranceForm.java
index d4d7f84bb32409eb77042bf96e55c4b6fad19cf0..b3546fb9a54f330dce38c771688e7db2388cf4d2 100644 (file)
@@ -2,6 +2,7 @@ package org.cacert.gigi.pages.wot;
 
 import java.io.InputStreamReader;
 import java.io.PrintWriter;
+import java.sql.SQLException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -14,6 +15,8 @@ import org.cacert.gigi.Language;
 import org.cacert.gigi.User;
 import org.cacert.gigi.output.Form;
 import org.cacert.gigi.output.Template;
+import org.cacert.gigi.pages.LoginPage;
+import org.cacert.gigi.util.Notary;
 
 public class AssuranceForm extends Form {
        User assuree;
@@ -26,15 +29,21 @@ public class AssuranceForm extends Form {
        public AssuranceForm(int assuree) {
                this.assuree = new User(assuree);
        }
+       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 
        @Override
        public void output(PrintWriter out, Language l, Map<String, Object> vars) {
                HashMap<String, Object> res = new HashMap<String, Object>();
                res.putAll(vars);
                res.put("name", assuree.getName());
+               try {
+                       res.put("maxpoints", assuree.getMaxAssurePoints());
+               } catch (SQLException e) {
+                       e.printStackTrace();
+               }
+               res.put("dob", sdf.format(assuree.getDob()));
                templ.output(out, l, res);
        }
-       SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
 
        @Override
        public boolean submit(PrintWriter out, HttpServletRequest req) {
@@ -81,11 +90,30 @@ public class AssuranceForm extends Form {
                        failed = true;
                }
                // TODO checkPoints
-               out.println("</div>");
+               String points = req.getParameter("points");
+               if (points == null || "".equals(points)) {
+                       // TODO message
+                       failed = true;
+               }
                if (failed) {
+                       out.println("</div>");
                        return false;
                }
+               try {
+                       boolean success = Notary.assure(LoginPage.getUser(req), assuree,
+                                       Integer.parseInt(req.getParameter("points")),
+                                       req.getParameter("location"), req.getParameter("date"));
+                       if (!success) {
+                               outputError(out, req,
+                                               "Assurance failed. Maybe user data changed.");
+                       }
+                       out.println("</div>");
+                       return success;
+               } catch (SQLException e) {
+                       e.printStackTrace();
+               }
 
+               out.println("</div>");
                return false;
        }
 }