Improve JSON responses from server

This commit is contained in:
Francis Lachapelle
2015-12-09 09:44:33 -05:00
parent 38e5588c67
commit 5e978940f9
3 changed files with 17 additions and 11 deletions
+6 -2
View File
@@ -814,6 +814,7 @@ static NSArray *infoKeys = nil;
NSMutableArray *errorMsg;
NSDictionary *messageSubmissions;
SOGoSystemDefaults *dd;
id <WOActionResults> response;
int messages_count, recipients_count;
@@ -878,6 +879,8 @@ static NSArray *infoKeys = nil;
[errorMsg componentsJoinedByString: @"\n"],
@"message",
nil];
response = [self responseWithStatus: 405
andJSONRepresentation: jsonResponse];
}
else
{
@@ -886,6 +889,8 @@ static NSArray *infoKeys = nil;
[co sourceFolder], @"sourceFolder",
[NSNumber numberWithInt: [co sourceIMAP4ID]], @"sourceMessageID",
nil];
response = [self responseWithStatus: 200
andJSONRepresentation: jsonResponse];
recipients_count += [[co allRecipients] count];
messages_count += 1;
@@ -898,8 +903,7 @@ static NSArray *infoKeys = nil;
}
}
return [self responseWithStatus: 200
andString: [jsonResponse jsonRepresentation]];
return response;
}
@end /* UIxMailEditor */
+2 -2
View File
@@ -2180,12 +2180,12 @@ static NSArray *reminderValues = nil;
if (![account updateFilters])
{
results = (id <WOActionResults>) [self responseWithStatus: 502
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Connection error", @"textStatus", nil]];
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Connection error", @"message", nil]];
}
}
else
results = (id <WOActionResults>) [self responseWithStatus: 503
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Service temporarily unavailable", @"textStatus", nil]];
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Service temporarily unavailable", @"message", nil]];
}
}
+9 -7
View File
@@ -60,7 +60,7 @@
SoSecurityManager *sm;
iCalEvent *event;
NSCalendarDate *start, *newStart, *end, *newEnd;
NSDictionary *params;
NSDictionary *params, *jsonResponse;
NSTimeInterval newDuration;
SOGoUserDefaults *ud;
NSNumber *daysDelta, *startDelta, *durationDelta;
@@ -138,24 +138,26 @@
inContext: context])
ex = [co moveToFolder: targetCalendar];
}
}
if (ex)
{
NSDictionary *jsonResponse;
jsonResponse = [NSDictionary dictionaryWithObjectsAndKeys:
[ex reason], @"message",
nil];
response = [self responseWithStatus: 403
andString: [jsonResponse jsonRepresentation]];
andJSONRepresentation: jsonResponse];
}
else
response = [self responseWith204];
}
else
response = (WOResponse *) [NSException exceptionWithHTTPStatus: 400
reason: @"missing 'days', 'start' and/or 'duration' parameters"];
{
jsonResponse = [NSDictionary dictionaryWithObjectsAndKeys:
@"missing 'days', 'start' and/or 'duration' parameters", @"message",
nil];
response = [self responseWithStatus: 400
andJSONRepresentation: jsonResponse];
}
return response;
}