Fixed problem with header name encoding in tags and groups
[pithos] / web_client / src / gr / grnet / pithos / web / client / rest / PostRequest.java
index 81de5f4..a9b6ae7 100644 (file)
 
 package gr.grnet.pithos.web.client.rest;
 
+import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.client.Scheduler.ScheduledCommand;
 import com.google.gwt.http.client.Request;
 import com.google.gwt.http.client.RequestBuilder;
 import com.google.gwt.http.client.RequestException;
 import com.google.gwt.http.client.Response;
+import com.google.gwt.http.client.URL;
+
 import gr.grnet.pithos.web.client.foldertree.Resource;
 import java.util.HashMap;
 import java.util.Map;
@@ -48,9 +51,11 @@ public abstract class PostRequest implements ScheduledCommand {
 
     private String api;
 
-    private String owner;
+    protected String owner;
 
     private String path;
+    
+    String data = "";
 
     private Map<String, String> headers = new HashMap<String, String>();
 
@@ -64,6 +69,13 @@ public abstract class PostRequest implements ScheduledCommand {
         this.path = path;
     }
 
+    public PostRequest(String api, String owner, String path, String data) {
+        this.api = api;
+        this.owner = owner;
+        this.path = path;
+        this.data = data;
+    }
+
     @Override
     public void execute() {
         RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, api + owner + path);
@@ -71,7 +83,7 @@ public abstract class PostRequest implements ScheduledCommand {
             builder.setHeader(header, headers.get(header));
         }
         try {
-            builder.sendRequest("", new RestRequestCallback(api + owner + path, Response.SC_ACCEPTED) {
+            builder.sendRequest(data, new RestRequestCallback<Resource>(api + owner + path, Response.SC_ACCEPTED) {
                 @Override
                 public void onSuccess(Resource object) {
                     PostRequest.this.onSuccess(object);
@@ -83,16 +95,24 @@ public abstract class PostRequest implements ScheduledCommand {
                 }
 
                 @Override
-                public void onError(Request request, Throwable throwable) {
+                public void onError(@SuppressWarnings("unused") Request request, Throwable throwable) {
                     PostRequest.this.onError(throwable);
                 }
+
+                               @Override
+                               public void onUnauthorized(Response response) {
+                                       PostRequest.this.onUnauthorized(response);
+                               }
             });
         }
         catch (RequestException e) {
+               GWT.log("", e);
         }
     }
 
-    public void setHeader(String header, String value) {
+    protected abstract void onUnauthorized(Response response);
+
+       public void setHeader(String header, String value) {
         headers.put(header, value);
     }
 }