-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #13 from mario-bermonti:fix-12
Use firebase.uid as participantID
- Loading branch information
Showing
6 changed files
with
68 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import 'package:firebase_auth/firebase_auth.dart'; | ||
import 'package:mdigit_span_tasks_ema/src/auth/participant.dart'; | ||
|
||
/// Manages authorization processes for the app | ||
class Auth { | ||
/// [FirebaseAuth] instance used to access auth functionality. | ||
final FirebaseAuth auth; | ||
|
||
Auth({required this.auth}); | ||
|
||
/// Anonymously add or sign in the participant into firebase. | ||
Future<Participant> signIn() async { | ||
final UserCredential userCredential = await auth.signInAnonymously(); | ||
final Participant participant = Participant( | ||
uid: userCredential.user?.uid, | ||
registerDateTime: userCredential.user?.metadata.creationTime, | ||
); | ||
return participant; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
/// Represents a single study participant. | ||
/// Can be used to keep track of participants' important info, including | ||
/// "identifying" info. | ||
class Participant { | ||
late final String uid; | ||
late final DateTime registerDateTime; | ||
|
||
Participant({ | ||
required String? uid, | ||
required DateTime? registerDateTime, | ||
}) { | ||
if (uid == null || registerDateTime == null) { | ||
throw Exception('Error creating participant model'); | ||
} else { | ||
this.uid = uid; | ||
this.registerDateTime = registerDateTime; | ||
} | ||
} | ||
} |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
test/src/services/auth_test.dart → test/src/auth/auth_test.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
import 'package:flutter_test/flutter_test.dart'; | ||
import 'package:mdigit_span_tasks_ema/src/auth/participant.dart'; | ||
|
||
void main() { | ||
test( | ||
"When passing a null uid, Participant's constructor will throw an exception", | ||
() { | ||
expect( | ||
() => Participant(uid: null, registerDateTime: DateTime.now()), | ||
throwsException, | ||
); | ||
}, | ||
); | ||
test( | ||
"When passing a null registerDateTime, Participant's constructor will throw an exception", | ||
() { | ||
expect( | ||
() => Participant(uid: 'uid', registerDateTime: null), | ||
throwsException, | ||
); | ||
}, | ||
); | ||
} |