func createAuthUserAttributeKey()

in packages/amplify_auth_cognito/ios/Classes/Utils/UserAttributeDeserialization.swift [24:64]


func createAuthUserAttributeKey(keyName: String) -> AuthUserAttributeKey {
    switch keyName {
    case "address":
        return AuthUserAttributeKey.address
    case "birthdate":
        return AuthUserAttributeKey.birthDate
    case "email":
        return AuthUserAttributeKey.email
    case "family_name":
        return AuthUserAttributeKey.familyName
    case "gender":
        return AuthUserAttributeKey.gender
    case "given_name":
        return AuthUserAttributeKey.givenName
    case "locale":
        return AuthUserAttributeKey.locale
    case "middle_name":
        return AuthUserAttributeKey.middleName
    case "name":
        return AuthUserAttributeKey.name
    case "nickname":
        return AuthUserAttributeKey.nickname
    case "phone_number":
        return AuthUserAttributeKey.phoneNumber
    case "picture":
        return AuthUserAttributeKey.picture
    case "preferred_username":
        return AuthUserAttributeKey.preferredUsername
    default:
        // amplify-ios does not currently include enums for these keyNames
        let unknownKeys = ["profile", "updated_at", "website", "zoneinfo"]
        if (unknownKeys.contains(keyName)) {
            return AuthUserAttributeKey.unknown(keyName)
        } else {
            // amplify-ios prepends 'custom:' to custom keys
            let customKeyPrefix = "custom:"
            let customKeyName = keyName.starts(with: customKeyPrefix) ? String(keyName.dropFirst(customKeyPrefix.count)) : keyName
            return AuthUserAttributeKey.custom(customKeyName)
        }
    }
}