Skip to content

Commit a8c54ac

Browse files
Merge pull request #17852 from nextcloud/feat/support-move-method
Implemented MOVE WebDAV method for SSO requests
2 parents 3679c7f + 1984c94 commit a8c54ac

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

‎app/src/main/java/com/nextcloud/android/sso/InputStreamBinder.java‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import org.apache.commons.httpclient.methods.StringRequestEntity;
4444
import org.apache.jackrabbit.webdav.DavConstants;
4545
import org.apache.jackrabbit.webdav.client.methods.MkColMethod;
46+
import org.apache.jackrabbit.webdav.client.methods.MoveMethod;
4647
import org.apache.jackrabbit.webdav.client.methods.PropFindMethod;
4748
import org.apache.jackrabbit.webdav.property.DavPropertyNameSet;
4849

@@ -280,6 +281,15 @@ private HttpMethodBase buildMethod(NextcloudRequest request, Uri baseUri, InputS
280281
method = new DeleteMethod(requestUrl);
281282
break;
282283

284+
case "MOVE":
285+
String destUrl = request.getAdditionalParameter(NextcloudRequest.ADDITIONAL_PARAMETER_MOVE_DESTINATION);
286+
boolean overwrite =
287+
"true".equalsIgnoreCase(
288+
request.getAdditionalParameter(NextcloudRequest.ADDITIONAL_PARAMETER_MOVE_OVERWRITE)
289+
);
290+
method = new MoveMethod(requestUrl, destUrl, overwrite);
291+
break;
292+
283293
case "PROPFIND":
284294
method = new NCPropFindMethod(requestUrl, DavConstants.PROPFIND_ALL_PROP, DavConstants.DEPTH_1);
285295
if (request.getRequestBody() != null) {

‎app/src/main/java/com/nextcloud/android/sso/aidl/NextcloudRequest.java‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,13 @@ public class NextcloudRequest implements Serializable {
2121

2222
private static final long serialVersionUID = 215521212534240L; //assign a long value
2323

24+
public static final String ADDITIONAL_PARAMETER_MOVE_DESTINATION = "Destination";
25+
public static final String ADDITIONAL_PARAMETER_MOVE_OVERWRITE = "Overwrite";
26+
2427
private String method;
2528
private Map<String, List<String>> header = new HashMap<>();
2629
private Map<String, String> parameter = new HashMap<>();
30+
private Map<String, String> additionalParameter = new HashMap<>();
2731
private final Collection<QueryParam> parameterV2 = new LinkedList<>();
2832
private String requestBody;
2933
private String url;
@@ -60,6 +64,15 @@ public Builder setParameter(Map<String, String> parameter) {
6064
return this;
6165
}
6266

67+
public Builder setAdditionalParameters(Map<String, String> ap) {
68+
ncr.additionalParameter = ap;
69+
return this;
70+
}
71+
public Builder setAdditionalParameter(String key, String value) {
72+
ncr.additionalParameter.put(key, value);
73+
return this;
74+
}
75+
6376
public Builder setRequestBody(String requestBody) {
6477
ncr.requestBody = requestBody;
6578
return this;
@@ -103,6 +116,13 @@ public Map<String, String> getParameter() {
103116
return this.parameter;
104117
}
105118

119+
public Map<String, String> getAdditionalParameters() {
120+
return this.additionalParameter;
121+
}
122+
public String getAdditionalParameter(String key) {
123+
return this.additionalParameter.get(key);
124+
}
125+
106126
public String getRequestBody() {
107127
return this.requestBody;
108128
}

0 commit comments

Comments
 (0)