+- (ASIPithosRequest *)updateUserCatalogForForDisplaynames:(NSArray *)displaynames UUIDs:(NSArray *)UUIDs {
+ ASIPithosRequest *userCatalogRequest = [ASIPithosRequest userCatalogRequestWithPithos:self.pithos
+ displaynames:displaynames
+ UUIDs:UUIDs];
+ [PithosUtilities startAndWaitForRequest:userCatalogRequest];
+ if (userCatalogRequest.error || ((userCatalogRequest.responseStatusCode != 200) && (userCatalogRequest.responseStatusCode != 404))) {
+ // Don't show alert on 404, since it can be a pre-UUID server.
+ [PithosUtilities httpRequestErrorAlertWithRequest:userCatalogRequest];
+ } else if (userCatalogRequest.responseStatusCode == 200) {
+ NSDictionary *catalogs = [userCatalogRequest catalogs];
+ NSDictionary *displaynameCatalog = [catalogs objectForKey:@"displayname_catalog"];
+ for (NSString *displayname in displaynameCatalog) {
+ [self.userCatalog setObject:displayname forKey:[displaynameCatalog objectForKey:displayname]];
+ }
+ if (UUIDs) {
+ NSDictionary *UUIDCatalog = [catalogs objectForKey:@"uuid_catalog"];
+ for (NSString *UUID in UUIDs) {
+ NSString *displayname = [UUIDCatalog objectForKey:UUID];
+ if (displayname) {
+ [self.userCatalog setObject:displayname forKey:UUID];
+ } else {
+ [self.userCatalog removeObjectForKey:UUID];
+ }
+ }
+ }
+ }
+ return userCatalogRequest;
+}
+
+- (NSString *)displaynameForUUID:(NSString *)UUID safe:(BOOL)safe {
+ NSString *displayName = [userCatalog objectForKey:UUID];
+ if (safe && !displayName) {
+ return UUID;
+ } else {
+ return displayName;
+ }
+}
+
+- (NSString *)displaynameForUUID:(NSString *)UUID {
+ return [self displaynameForUUID:UUID safe:NO];
+}
+