You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by lg...@apache.org on 2014/05/05 12:06:43 UTC
svn commit: r1592473 -
/chemistry/objectivecmis/branches/browser-binding/ObjectiveCMIS/Bindings/Browser/CMISBrowserObjectService.m
Author: lgross
Date: Mon May 5 10:06:43 2014
New Revision: 1592473
URL: http://svn.apache.org/r1592473
Log:
CMIS-797: Browser Binding: Create Document fails when no input stream is set
Modified:
chemistry/objectivecmis/branches/browser-binding/ObjectiveCMIS/Bindings/Browser/CMISBrowserObjectService.m
Modified: chemistry/objectivecmis/branches/browser-binding/ObjectiveCMIS/Bindings/Browser/CMISBrowserObjectService.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/branches/browser-binding/ObjectiveCMIS/Bindings/Browser/CMISBrowserObjectService.m?rev=1592473&r1=1592472&r2=1592473&view=diff
==============================================================================
--- chemistry/objectivecmis/branches/browser-binding/ObjectiveCMIS/Bindings/Browser/CMISBrowserObjectService.m (original)
+++ chemistry/objectivecmis/branches/browser-binding/ObjectiveCMIS/Bindings/Browser/CMISBrowserObjectService.m Mon May 5 10:06:43 2014
@@ -431,31 +431,42 @@
CMISRequest *cmisRequest = [[CMISRequest alloc] init];
+ void (^responseHandlingBlock) (CMISHttpResponse*, NSError*) = ^(CMISHttpResponse *httpResponse, NSError *error) {
+ if ((httpResponse.statusCode == 200 || httpResponse.statusCode == 201) && httpResponse.data) {
+ CMISBrowserTypeCache *typeCache = [[CMISBrowserTypeCache alloc] initWithRepositoryId:self.bindingSession.repositoryId bindingService:self];
+ [CMISBrowserUtil objectDataFromJSONData:httpResponse.data typeCache:typeCache completionBlock:^(CMISObjectData *objectData, NSError *error) {
+ if (error) {
+ completionBlock(nil, error);
+ } else {
+ completionBlock(objectData.identifier, nil);
+ }
+ }];
+ } else {
+ completionBlock(nil, error);
+ }
+ };
+
// send
- [self.bindingSession.networkProvider invoke:[NSURL URLWithString:folderObjectUrl]
- httpMethod:HTTP_POST
- session:self.bindingSession
- inputStream:inputStream
- headers:formData.headers
- bytesExpected:bytesExpected
- cmisRequest:cmisRequest
- startData:formData.startData
- endData:formData.endData
- completionBlock:^(CMISHttpResponse *httpResponse, NSError *error) {
- if ((httpResponse.statusCode == 200 || httpResponse.statusCode == 201) && httpResponse.data) {
- CMISBrowserTypeCache *typeCache = [[CMISBrowserTypeCache alloc] initWithRepositoryId:self.bindingSession.repositoryId bindingService:self];
- [CMISBrowserUtil objectDataFromJSONData:httpResponse.data typeCache:typeCache completionBlock:^(CMISObjectData *objectData, NSError *error) {
- if (error) {
- completionBlock(nil, error);
- } else {
- completionBlock(objectData.identifier, nil);
- }
- }];
- } else {
- completionBlock(nil, error);
- }
- }
- progressBlock:progressBlock];
+ if (inputStream) {
+ [self.bindingSession.networkProvider invoke:[NSURL URLWithString:folderObjectUrl]
+ httpMethod:HTTP_POST
+ session:self.bindingSession
+ inputStream:inputStream
+ headers:formData.headers
+ bytesExpected:bytesExpected
+ cmisRequest:cmisRequest
+ startData:formData.startData
+ endData:formData.endData
+ completionBlock:responseHandlingBlock
+ progressBlock:progressBlock];
+ } else {
+ [self.bindingSession.networkProvider invokePOST:[NSURL URLWithString:folderObjectUrl]
+ session:self.bindingSession
+ body:formData.body
+ headers:formData.headers
+ cmisRequest:cmisRequest
+ completionBlock:responseHandlingBlock];
+ }
return cmisRequest;
}