Implemented FolderDelete for mail folders

pull/17/head
Ludovic Marcotte 2014-01-15 09:36:25 -05:00
parent ada90677e1
commit 29fcfda118
1 changed files with 60 additions and 0 deletions

View File

@ -241,6 +241,66 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
[theResponse setContent: d];
}
//
//
//
- (void) processFolderDelete: (id <DOMElement>) theDocumentElement
inResponse: (WOResponse *) theResponse
{
SOGoMailAccounts *accountsFolder;
SOGoMailFolder *folderToDelete;
SOGoUserFolder *userFolder;
id currentFolder;
NSException *error;
NSString *serverId;
SOGoMicrosoftActiveSyncFolderType folderType;
serverId = [[[(id)[theDocumentElement getElementsByTagName: @"ServerId"] lastObject] textValue] realCollectionIdWithFolderType: &folderType];
userFolder = [[context activeUser] homeFolderInContext: context];
accountsFolder = [userFolder lookupName: @"Mail" inContext: context acquire: NO];
currentFolder = [accountsFolder lookupName: @"0" inContext: context acquire: NO];
folderToDelete = [currentFolder lookupName: [NSString stringWithFormat: @"folder%@", serverId]
inContext: context
acquire: NO];
error = [folderToDelete delete];
if (!error)
{
NSMutableString *s;
NSString *syncKey;
NSData *d;
//
// We update the FolderSync's synckey
//
syncKey = [[NSProcessInfo processInfo] globallyUniqueString];
[self _setFolderSyncKey: syncKey];
s = [NSMutableString string];
[s appendString: @"<?xml version=\"1.0\" encoding=\"utf-8\"?>"];
[s appendString: @"<!DOCTYPE ActiveSync PUBLIC \"-//MICROSOFT//DTD ActiveSync//EN\" \"http://www.microsoft.com/\">"];
[s appendString: @"<FolderDelete xmlns=\"FolderHierarchy:\">"];
[s appendFormat: @"<Status>%d</Status>", 1];
[s appendFormat: @"<SyncKey>%@</SyncKey>", syncKey];
[s appendString: @"</FolderDelete>"];
d = [[s dataUsingEncoding: NSUTF8StringEncoding] xml2wbxml];
[theResponse setContent: d];
}
else
{
[theResponse setStatus: 500];
[theResponse appendContentString: @"Unable to delete folder."];
}
}
//
//
//