Skip to content

Commit a63c980

Browse files
authored
Add example of user signup with more properties (#151)
* Add example of user signup with more properties * nit * nits
1 parent 0ea2385 commit a63c980

File tree

1 file changed

+42
-5
lines changed
  • ParseSwift.playground/Pages/4 - User - Continued.xcplaygroundpage

1 file changed

+42
-5
lines changed

ParseSwift.playground/Pages/4 - User - Continued.xcplaygroundpage/Contents.swift

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ struct User: ParseUser {
3232
var score: GameScore?
3333
var targetScore: GameScore?
3434
var allScores: [GameScore]?
35+
36+
//: Custom init for signup.
37+
init(username: String, password: String, email: String) {
38+
self.username = username
39+
self.password = password
40+
self.email = email
41+
}
3542
}
3643

3744
//: Create your own value typed `ParseObject`.
@@ -67,13 +74,13 @@ do {
6774
queue and returns to specified callbackQueue.
6875
If no callbackQueue is specified it returns to main queue.
6976
*/
70-
User.login(username: "hello", password: "world") { results in
77+
User.login(username: "hello", password: "world") { result in
7178

72-
switch results {
79+
switch result {
7380
case .success(let user):
7481

7582
guard let currentUser = User.current else {
76-
assertionFailure("Error: current user currently not stored locally")
83+
assertionFailure("Error: current user not stored locally")
7784
return
7885
}
7986
assert(currentUser.hasSameObjectId(as: user))
@@ -93,9 +100,9 @@ User.current?.customKey = "myCustom"
93100
User.current?.score = GameScore(score: 12)
94101
User.current?.targetScore = GameScore(score: 100)
95102
User.current?.allScores = [GameScore(score: 5), GameScore(score: 8)]
96-
User.current?.save { results in
103+
User.current?.save { result in
97104

98-
switch results {
105+
switch result {
99106
case .success(let updatedUser):
100107
print("Successfully save custom fields of User to ParseServer: \(updatedUser)")
101108
case .failure(let error):
@@ -134,6 +141,36 @@ do {
134141
print("Error logging out: \(error)")
135142
}
136143

144+
//: To add additional information when signing up a user,
145+
//: you should create an instance of your user first.
146+
var newUser = User(username: "parse", password: "aPassword*", email: "parse@parse.com")
147+
//: Add any other additional information.
148+
newUser.targetScore = .init(score: 40)
149+
newUser.signup { result in
150+
151+
switch result {
152+
case .success(let user):
153+
154+
guard let currentUser = User.current else {
155+
assertionFailure("Error: current user not stored locally")
156+
return
157+
}
158+
assert(currentUser.hasSameObjectId(as: user))
159+
print("Successfully signed up as user: \(user)")
160+
161+
case .failure(let error):
162+
print("Error logging in: \(error)")
163+
}
164+
}
165+
166+
//: Logging out - synchronously.
167+
do {
168+
try User.logout()
169+
print("Successfully logged out")
170+
} catch let error {
171+
print("Error logging out: \(error)")
172+
}
173+
137174
//: Verification Email - synchronously.
138175
do {
139176
try User.verificationEmail(email: "hello@parse.org")

0 commit comments

Comments
 (0)