Author: batosai
Date: 2008-08-13 11:52:55 +0000 (Wed, 13 Aug 2008)
New Revision: 21789
Modified:
trunk/apps/WoT/src/plugins/WoT/WoTplugin.java
Log:
Handle adding an identity trough FCP
Modified: trunk/apps/WoT/src/plugins/WoT/WoTplugin.java
===================================================================
--- trunk/apps/WoT/src/plugins/WoT/WoTplugin.java 2008-08-13 11:34:51 UTC
(rev 21788)
+++ trunk/apps/WoT/src/plugins/WoT/WoTplugin.java 2008-08-13 11:52:55 UTC
(rev 21789)
@@ -19,6 +19,7 @@
import com.db4o.ObjectContainer;
import com.db4o.ObjectSet;
+import freenet.client.FetchException;
import freenet.client.HighLevelSimpleClient;
import freenet.client.InsertException;
import freenet.clients.http.PageMaker;
@@ -324,7 +325,9 @@
return makeOwnIdentitiesPage();
}
else if(page.equals("/addIdentity")) {
- return addIdentity(request);
+ addIdentity(request);
+ return makeKnownIdentitiesPage();
+
}
else if(page.equals("/viewTree")) {
return
makeKnownIdentitiesPage(request.getPartAsString("ownerURI", 1024));
@@ -372,30 +375,23 @@
db.commit();
}
- private String addIdentity(HTTPRequest request) {
-
+ private void addIdentity(HTTPRequest request) throws
MalformedURLException, InvalidParameterException, FetchException {
+ addIdentity(request.getPartAsString("identityURI",
1024).trim());
+ }
+
+ private Identity addIdentity(String requestURI) throws
MalformedURLException, InvalidParameterException, FetchException {
Identity identity;
try {
- identity =
wot.getIdentityByURI(request.getPartAsString("identityURI", 1024));
- return "We already know that identity !";
+ identity = wot.getIdentityByURI(requestURI);
+ throw new InvalidParameterException("We already have
this identity");
}
catch (UnknownIdentityException e) {
- try {
- identity = new
Identity(request.getPartAsString("identityURI", 1024), new Date(0), "Not found
yet...", "false");
+ identity = new Identity(requestURI, new
Date(0), "Not found yet...", "false");
db.store(identity);
db.commit();
fetcher.fetch(identity);
- }
- catch(Exception e2) {
- return e2.getMessage();
- }
- } catch (MalformedURLException e) {
- return e.getMessage();
- } catch (InvalidParameterException e) {
- return e.getMessage();
}
-
- return makeKnownIdentitiesPage();
+ return identity;
}
private OwnIdentity createIdentity(HTTPRequest request) throws
TransformerConfigurationException, FileNotFoundException,
InvalidParameterException, ParserConfigurationException, TransformerException,
IOException, InsertException {
@@ -452,6 +448,9 @@
else if(params.get("Message").equals("SetTrust")) {
replysender.send(handleSetTrust(params), data);
}
+ else if(params.get("Message").equals("AddIdentity")) {
+ replysender.send(handleAddIdentity(params),
data);
+ }
else {
throw new Exception("Unknown message (" +
params.get("Message") + ")");
}
@@ -495,6 +494,19 @@
return sfs;
}
+ private SimpleFieldSet handleAddIdentity(SimpleFieldSet params) throws
InvalidParameterException, MalformedURLException, FetchException {
+
+ SimpleFieldSet sfs = new SimpleFieldSet(false);
+
+ if(params.get("requestURI") == null) throw new
InvalidParameterException("Missing mandatory parameter");
+
+ Identity identity =
addIdentity(params.get("requestURI").trim());
+
+ sfs.putAppend("Message", "IdentityAdded");
+ sfs.putAppend("requestURI",
identity.getRequestURI().toString());
+ return sfs;
+ }
+
private SimpleFieldSet errorMessageFCP (Exception e) {
SimpleFieldSet sfs = new SimpleFieldSet(false);