Skip to content

Commit 1697468

Browse files
committed
fix throwing error when linking auth types due to missing sessionToken
1 parent f3f2244 commit 1697468

File tree

12 files changed

+93
-22
lines changed

12 files changed

+93
-22
lines changed

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
# Parse-Swift Changelog
22

33
### main
4-
[Full Changelog](https://github.com/parse-community/Parse-Swift/compare/1.2.5...main)
4+
[Full Changelog](https://github.com/parse-community/Parse-Swift/compare/1.2.6...main)
55
* _Contributing to this repo? Add info about your change here to be included in the next release_
66

7+
### 1.2.6
8+
[Full Changelog](https://github.com/parse-community/Parse-Swift/compare/1.2.5...1.2.6)
9+
10+
__Fixes__
11+
- Crash when linking auth types due to server not sending sessionToken ([#109](https://github.com/parse-community/Parse-Swift/pull/109)), thanks to [Corey Baker](https://github.com/cbaker6).
12+
713
### 1.2.5
814
[Full Changelog](https://github.com/parse-community/Parse-Swift/compare/1.2.4...1.2.5)
915

ParseSwift.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = "ParseSwift"
3-
s.version = "1.2.5"
3+
s.version = "1.2.6"
44
s.summary = "Parse Pure Swift SDK"
55
s.homepage = "https://github.com/parse-community/Parse-Swift"
66
s.authors = {

ParseSwift.xcodeproj/project.pbxproj

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2321,7 +2321,7 @@
23212321
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
23222322
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
23232323
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
2324-
MARKETING_VERSION = 1.2.5;
2324+
MARKETING_VERSION = 1.2.6;
23252325
PRODUCT_BUNDLE_IDENTIFIER = com.parse.ParseSwift;
23262326
PRODUCT_NAME = ParseSwift;
23272327
SKIP_INSTALL = YES;
@@ -2345,7 +2345,7 @@
23452345
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
23462346
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
23472347
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
2348-
MARKETING_VERSION = 1.2.5;
2348+
MARKETING_VERSION = 1.2.6;
23492349
PRODUCT_BUNDLE_IDENTIFIER = com.parse.ParseSwift;
23502350
PRODUCT_NAME = ParseSwift;
23512351
SKIP_INSTALL = YES;
@@ -2411,7 +2411,7 @@
24112411
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
24122412
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
24132413
MACOSX_DEPLOYMENT_TARGET = 10.13;
2414-
MARKETING_VERSION = 1.2.5;
2414+
MARKETING_VERSION = 1.2.6;
24152415
PRODUCT_BUNDLE_IDENTIFIER = com.parse.ParseSwift;
24162416
PRODUCT_NAME = ParseSwift;
24172417
SDKROOT = macosx;
@@ -2437,7 +2437,7 @@
24372437
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
24382438
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
24392439
MACOSX_DEPLOYMENT_TARGET = 10.13;
2440-
MARKETING_VERSION = 1.2.5;
2440+
MARKETING_VERSION = 1.2.6;
24412441
PRODUCT_BUNDLE_IDENTIFIER = com.parse.ParseSwift;
24422442
PRODUCT_NAME = ParseSwift;
24432443
SDKROOT = macosx;
@@ -2584,7 +2584,7 @@
25842584
INFOPLIST_FILE = "ParseSwift-watchOS/Info.plist";
25852585
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
25862586
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
2587-
MARKETING_VERSION = 1.2.5;
2587+
MARKETING_VERSION = 1.2.6;
25882588
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
25892589
MTL_FAST_MATH = YES;
25902590
PRODUCT_BUNDLE_IDENTIFIER = "com.parse.ParseSwift-watchOS";
@@ -2613,7 +2613,7 @@
26132613
INFOPLIST_FILE = "ParseSwift-watchOS/Info.plist";
26142614
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
26152615
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
2616-
MARKETING_VERSION = 1.2.5;
2616+
MARKETING_VERSION = 1.2.6;
26172617
MTL_FAST_MATH = YES;
26182618
PRODUCT_BUNDLE_IDENTIFIER = "com.parse.ParseSwift-watchOS";
26192619
PRODUCT_NAME = ParseSwift;
@@ -2640,7 +2640,7 @@
26402640
INFOPLIST_FILE = "ParseSwift-tvOS/Info.plist";
26412641
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
26422642
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
2643-
MARKETING_VERSION = 1.2.5;
2643+
MARKETING_VERSION = 1.2.6;
26442644
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
26452645
MTL_FAST_MATH = YES;
26462646
PRODUCT_BUNDLE_IDENTIFIER = "com.parse.ParseSwift-tvOS";
@@ -2668,7 +2668,7 @@
26682668
INFOPLIST_FILE = "ParseSwift-tvOS/Info.plist";
26692669
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
26702670
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
2671-
MARKETING_VERSION = 1.2.5;
2671+
MARKETING_VERSION = 1.2.6;
26722672
MTL_FAST_MATH = YES;
26732673
PRODUCT_BUNDLE_IDENTIFIER = "com.parse.ParseSwift-tvOS";
26742674
PRODUCT_NAME = ParseSwift;

Scripts/jazzy.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ bundle exec jazzy \
55
--author_url http://parseplatform.org \
66
--github_url https://github.com/parse-community/Parse-Swift \
77
--root-url http://parseplatform.org/Parse-Swift/api/ \
8-
--module-version 1.2.5 \
8+
--module-version 1.2.6 \
99
--theme fullwidth \
1010
--skip-undocumented \
1111
--output ./docs/api \

Sources/ParseSwift/API/Responses.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ internal struct SaveResponse: Decodable {
2626

2727
internal struct UpdateSessionTokenResponse: Decodable {
2828
var updatedAt: Date
29-
let sessionToken: String
29+
let sessionToken: String?
3030
}
3131

3232
internal struct UpdateResponse: Decodable {

Sources/ParseSwift/Authentication/Protocols/ParseAuthentication.swift

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -404,8 +404,10 @@ public extension ParseUser {
404404
guard let current = Self.current else {
405405
throw ParseError(code: .unknownError, message: "Should have a current user.")
406406
}
407-
Self.currentUserContainer = .init(currentUser: current,
408-
sessionToken: user.sessionToken)
407+
if let sessionToken = user.sessionToken {
408+
Self.currentUserContainer = .init(currentUser: current,
409+
sessionToken: sessionToken)
410+
}
409411
Self.saveCurrentContainerToKeychain()
410412
return current
411413
}
@@ -432,8 +434,10 @@ public extension ParseUser {
432434
guard let current = Self.current else {
433435
throw ParseError(code: .unknownError, message: "Should have a current user.")
434436
}
435-
Self.currentUserContainer = .init(currentUser: current,
436-
sessionToken: user.sessionToken)
437+
if let sessionToken = user.sessionToken {
438+
Self.currentUserContainer = .init(currentUser: current,
439+
sessionToken: sessionToken)
440+
}
437441
Self.saveCurrentContainerToKeychain()
438442
return current
439443
}

Sources/ParseSwift/ParseConstants.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import Foundation
1010

1111
enum ParseConstants {
12-
static let parseVersion = "1.2.5"
12+
static let parseVersion = "1.2.6"
1313
static let hashingKey = "parseSwift"
1414
static let fileManagementDirectory = "parse/"
1515
static let fileManagementPrivateDocumentsDirectory = "Private Documents/"

Tests/ParseSwiftTests/ParseAnonymousTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class ParseAnonymousTests: XCTestCase {
5959

6060
struct UpdateSessionTokenResponse: Codable {
6161
var updatedAt: Date
62-
let sessionToken: String
62+
let sessionToken: String?
6363
}
6464

6565
override func setUpWithError() throws {

Tests/ParseSwiftTests/ParseAppleTests.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class ParseAppleTests: XCTestCase {
3030

3131
var objectId: String?
3232
var createdAt: Date?
33-
var sessionToken: String
33+
var sessionToken: String?
3434
var updatedAt: Date?
3535
var ACL: ParseACL?
3636

@@ -387,6 +387,7 @@ class ParseAppleTests: XCTestCase {
387387
MockURLProtocol.removeAll()
388388

389389
var serverResponse = LoginSignupResponse()
390+
serverResponse.sessionToken = nil
390391
serverResponse.updatedAt = Date()
391392

392393
var userOnServer: User!
@@ -421,6 +422,7 @@ class ParseAppleTests: XCTestCase {
421422
XCTAssertNil(user.password)
422423
XCTAssertTrue(user.apple.isLinked)
423424
XCTAssertFalse(user.anonymous.isLinked)
425+
XCTAssertEqual(User.current?.sessionToken, "myToken")
424426
case .failure(let error):
425427
XCTFail(error.localizedDescription)
426428
}
@@ -434,6 +436,7 @@ class ParseAppleTests: XCTestCase {
434436
MockURLProtocol.removeAll()
435437

436438
var serverResponse = LoginSignupResponse()
439+
serverResponse.sessionToken = nil
437440
serverResponse.updatedAt = Date()
438441

439442
var userOnServer: User!
@@ -472,6 +475,7 @@ class ParseAppleTests: XCTestCase {
472475
XCTAssertNil(user.password)
473476
XCTAssertTrue(user.apple.isLinked)
474477
XCTAssertFalse(user.anonymous.isLinked)
478+
XCTAssertEqual(User.current?.sessionToken, "myToken")
475479
case .failure(let error):
476480
XCTFail(error.localizedDescription)
477481
}

Tests/ParseSwiftTests/ParseFacebookTests.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class ParseFacebookTests: XCTestCase {
3030

3131
var objectId: String?
3232
var createdAt: Date?
33-
var sessionToken: String
33+
var sessionToken: String?
3434
var updatedAt: Date?
3535
var ACL: ParseACL?
3636

@@ -572,6 +572,7 @@ class ParseFacebookTests: XCTestCase {
572572
MockURLProtocol.removeAll()
573573
let expiresIn = 10
574574
var serverResponse = LoginSignupResponse()
575+
serverResponse.sessionToken = nil
575576
serverResponse.updatedAt = Date()
576577

577578
var userOnServer: User!
@@ -602,6 +603,7 @@ class ParseFacebookTests: XCTestCase {
602603
XCTAssertNil(user.password)
603604
XCTAssertTrue(user.facebook.isLinked)
604605
XCTAssertFalse(user.anonymous.isLinked)
606+
XCTAssertEqual(User.current?.sessionToken, "myToken")
605607
case .failure(let error):
606608
XCTFail(error.localizedDescription)
607609
}
@@ -615,6 +617,7 @@ class ParseFacebookTests: XCTestCase {
615617
MockURLProtocol.removeAll()
616618
let expiresIn = 10
617619
var serverResponse = LoginSignupResponse()
620+
serverResponse.sessionToken = nil
618621
serverResponse.updatedAt = Date()
619622

620623
var userOnServer: User!
@@ -644,6 +647,7 @@ class ParseFacebookTests: XCTestCase {
644647
XCTAssertNil(user.password)
645648
XCTAssertTrue(user.facebook.isLinked)
646649
XCTAssertFalse(user.anonymous.isLinked)
650+
XCTAssertEqual(User.current?.sessionToken, "myToken")
647651
case .failure(let error):
648652
XCTFail(error.localizedDescription)
649653
}
@@ -656,6 +660,7 @@ class ParseFacebookTests: XCTestCase {
656660
_ = try loginNormally()
657661
MockURLProtocol.removeAll()
658662
var serverResponse = LoginSignupResponse()
663+
serverResponse.sessionToken = nil
659664
serverResponse.updatedAt = Date()
660665

661666
var userOnServer: User!
@@ -690,6 +695,7 @@ class ParseFacebookTests: XCTestCase {
690695
XCTAssertNil(user.password)
691696
XCTAssertTrue(user.facebook.isLinked)
692697
XCTAssertFalse(user.anonymous.isLinked)
698+
XCTAssertEqual(User.current?.sessionToken, "myToken")
693699
case .failure(let error):
694700
XCTFail(error.localizedDescription)
695701
}

0 commit comments

Comments
 (0)