1/*
2 *  Copyright 2014 The WebRTC Project Authors. All rights reserved.
3 *
4 *  Use of this source code is governed by a BSD-style license
5 *  that can be found in the LICENSE file in the root of the source
6 *  tree. An additional intellectual property rights grant can be found
7 *  in the file PATENTS.  All contributing project authors may
8 *  be found in the AUTHORS file in the root of the source tree.
9 */
10
11#import "RTCICEServer+JSON.h"
12
13static NSString const *kRTCICEServerUsernameKey = @"username";
14static NSString const *kRTCICEServerPasswordKey = @"password";
15static NSString const *kRTCICEServerUrisKey = @"uris";
16static NSString const *kRTCICEServerUrlKey = @"urls";
17static NSString const *kRTCICEServerCredentialKey = @"credential";
18
19@implementation RTCICEServer (JSON)
20
21+ (RTCICEServer *)serverFromJSONDictionary:(NSDictionary *)dictionary {
22  NSString *url = dictionary[kRTCICEServerUrlKey];
23  NSString *username = dictionary[kRTCICEServerUsernameKey];
24  NSString *credential = dictionary[kRTCICEServerCredentialKey];
25  username = username ? username : @"";
26  credential = credential ? credential : @"";
27  return [[RTCICEServer alloc] initWithURI:[NSURL URLWithString:url]
28                                  username:username
29                                  password:credential];
30}
31
32+ (NSArray *)serversFromCEODJSONDictionary:(NSDictionary *)dictionary {
33  NSString *username = dictionary[kRTCICEServerUsernameKey];
34  NSString *password = dictionary[kRTCICEServerPasswordKey];
35  NSArray *uris = dictionary[kRTCICEServerUrisKey];
36  NSMutableArray *servers = [NSMutableArray arrayWithCapacity:uris.count];
37  for (NSString *uri in uris) {
38    RTCICEServer *server =
39        [[RTCICEServer alloc] initWithURI:[NSURL URLWithString:uri]
40                                 username:username
41                                 password:password];
42    [servers addObject:server];
43  }
44  return servers;
45}
46
47@end
48