Skip to content

Commit 2fc6ec9

Browse files
committed
Introduce PersonNameComponents for GoogleSignIn
1 parent cb1cfb4 commit 2fc6ec9

File tree

4 files changed

+53
-9
lines changed

4 files changed

+53
-9
lines changed

Sources/Apple/AppleAuthenticator+Models.swift

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,7 @@ public extension AppleAuthenticator {
2525

2626
/// User full name represented by `givenName` and `familyName`
2727
public var name: String? {
28-
guard let givenName = nameComponents?.givenName else {
29-
return nameComponents?.familyName
30-
}
31-
guard let familyName = nameComponents?.familyName else {
32-
return givenName
33-
}
34-
return "\(givenName) \(familyName)"
28+
nameComponents?.name
3529
}
3630
}
3731

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
//
2+
// PersonNameComponents+Extension.swift
3+
// PovioKitAuth
4+
//
5+
// Created by Egzon Arifi on 09/11/2024.
6+
//
7+
8+
import AuthenticationServices
9+
import Foundation
10+
11+
public extension PersonNameComponents {
12+
var name: String? {
13+
guard let givenName = givenName else {
14+
return familyName
15+
}
16+
guard let familyName = familyName else {
17+
return givenName
18+
}
19+
return "\(givenName) \(familyName)"
20+
}
21+
}
22+
23+
public extension PersonNameComponents {
24+
static func create(namePrefix: String? = .none,
25+
middleName: String? = .none,
26+
givenName: String? = .none,
27+
familyName: String? = .none,
28+
nameSuffix: String? = .none,
29+
nickname: String? = .none,
30+
phoneticRepresentation: PersonNameComponents? = .none) -> PersonNameComponents {
31+
var components = PersonNameComponents()
32+
components.namePrefix = namePrefix
33+
components.familyName = familyName
34+
components.middleName = middleName
35+
components.givenName = givenName
36+
components.nameSuffix = nameSuffix
37+
components.nickname = nickname
38+
components.phoneticRepresentation = phoneticRepresentation
39+
return components
40+
}
41+
}

Sources/Google/GoogleAuthenticator+Models.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,21 @@
77
//
88

99
import Foundation
10+
import PovioKitAuthCore
1011

1112
public extension GoogleAuthenticator {
1213
struct Response {
1314
public let userId: String?
1415
public let idToken: String?
1516
public let accessToken: String
1617
public let refreshToken: String
17-
public let name: String?
18+
public let nameComponents: PersonNameComponents?
1819
public let email: String?
1920
public let expiresAt: Date?
21+
22+
/// User full name represented by `givenName` and `familyName`
23+
public var name: String? {
24+
nameComponents?.name
25+
}
2026
}
2127
}

Sources/Google/GoogleAuthenticator.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,10 @@ private extension GIDGoogleUser {
107107
idToken: idToken?.tokenString,
108108
accessToken: accessToken.tokenString,
109109
refreshToken: refreshToken.tokenString,
110-
name: profile?.name,
110+
nameComponents: PersonNameComponents.create(
111+
givenName: profile?.givenName,
112+
familyName: profile?.familyName
113+
),
111114
email: profile?.email,
112115
expiresAt: accessToken.expirationDate
113116
)

0 commit comments

Comments
 (0)