You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
3.9 KiB
86 lines
3.9 KiB
/*
|
|
* Copyright 2017 Google
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#import "FIRVerifyAssertionResponse.h"
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
@implementation FIRVerifyAssertionResponse
|
|
|
|
- (BOOL)setWithDictionary:(NSDictionary *)dictionary
|
|
error:(NSError *_Nullable *_Nullable)error {
|
|
_federatedID = [dictionary[@"federatedId"] copy];
|
|
_providerID = [dictionary[@"providerId"] copy];
|
|
_localID = [dictionary[@"localId"] copy];
|
|
_emailRecycled = [dictionary[@"emailRecycled"] boolValue];
|
|
_emailVerified = [dictionary[@"emailVerified"] boolValue];
|
|
_email = [dictionary[@"email"] copy];
|
|
_inputEmail = [dictionary[@"inputEmail"] copy];
|
|
_originalEmail = [dictionary[@"originalEmail"] copy];
|
|
_oauthRequestToken = [dictionary[@"oauthRequestToken"] copy];
|
|
_oauthScope = [dictionary[@"oauthScope"] copy];
|
|
_firstName = [dictionary[@"firstName"] copy];
|
|
_lastName = [dictionary[@"lastName"] copy];
|
|
_fullName = [dictionary[@"fullName"] copy];
|
|
_nickName = [dictionary[@"nickName"] copy];
|
|
_displayName = [dictionary[@"displayName"] copy];
|
|
_IDToken = [dictionary[@"idToken"] copy];
|
|
_approximateExpirationDate = [dictionary[@"expiresIn"] isKindOfClass:[NSString class]] ?
|
|
[NSDate dateWithTimeIntervalSinceNow:[dictionary[@"expiresIn"] doubleValue]] : nil;
|
|
_refreshToken = [dictionary[@"refreshToken"] copy];
|
|
_isNewUser = [dictionary[@"isNewUser"] boolValue];
|
|
id rawUserInfo = dictionary[@"rawUserInfo"];
|
|
if ([rawUserInfo isKindOfClass:[NSString class]]) {
|
|
NSData *data = [rawUserInfo dataUsingEncoding:NSUTF8StringEncoding];
|
|
rawUserInfo = [NSJSONSerialization JSONObjectWithData:data
|
|
options:NSJSONReadingMutableLeaves
|
|
error:nil];
|
|
}
|
|
if ([rawUserInfo isKindOfClass:[NSDictionary class]]) {
|
|
_profile = [[NSDictionary alloc] initWithDictionary:rawUserInfo
|
|
copyItems:YES];
|
|
}
|
|
_username = [dictionary[@"username"] copy];
|
|
_action = [dictionary[@"action"] copy];
|
|
_language = [dictionary[@"language"] copy];
|
|
_timeZone = [dictionary[@"timeZone"] copy];
|
|
_photoURL = dictionary[@"photoUrl"] ? [NSURL URLWithString:dictionary[@"photoUrl"]] : nil;
|
|
_dateOfBirth = [dictionary[@"dateOfBirth"] copy];
|
|
_context = [dictionary[@"context"] copy];
|
|
_needConfirmation = [dictionary[@"needConfirmation"] boolValue];
|
|
id verifiedProvider = dictionary[@"verifiedProvider"];
|
|
if ([verifiedProvider isKindOfClass:[NSString class]]) {
|
|
NSData *data = [verifiedProvider dataUsingEncoding:NSUTF8StringEncoding];
|
|
verifiedProvider = [NSJSONSerialization JSONObjectWithData:data
|
|
options:NSJSONReadingMutableLeaves
|
|
error:nil];
|
|
}
|
|
if ([verifiedProvider isKindOfClass:[NSArray class]]) {
|
|
_verifiedProvider = [[NSArray alloc] initWithArray:verifiedProvider
|
|
copyItems:YES];
|
|
}
|
|
_oauthIDToken = [dictionary[@"oauthIdToken"] copy];
|
|
_oauthExpirationDate = [dictionary[@"oauthExpireIn"] isKindOfClass:[NSString class]] ?
|
|
[NSDate dateWithTimeIntervalSinceNow:[dictionary[@"oauthExpireIn"] doubleValue]] : nil;
|
|
_oauthAccessToken = [dictionary[@"oauthAccessToken"] copy];
|
|
_oauthSecretToken = [dictionary[@"oauthTokenSecret"] copy];
|
|
_pendingToken = [dictionary[@"pendingToken"] copy];
|
|
return YES;
|
|
}
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|