createUserProfile static method
Future<UserProfileModel>
createUserProfile(
- Session session,
- UuidValue authUserId,
- UserProfileData userProfile, {
- Transaction? transaction,
Creates a new user profile and stores it in the database.
Implementation
static Future<UserProfileModel> createUserProfile(
final Session session,
final UuidValue authUserId,
UserProfileData userProfile, {
final Transaction? transaction,
}) async {
return DatabaseUtil.runInTransactionOrSavepoint(
session.db,
transaction,
(final transaction) async {
final onBeforeUserProfileCreated =
UserProfileConfig.current.onBeforeUserProfileCreated;
if (onBeforeUserProfileCreated != null) {
userProfile = await onBeforeUserProfileCreated(
session,
authUserId,
userProfile,
transaction: transaction,
);
}
userProfile = userProfile.copyWith(
email: userProfile.email?.toLowerCase().trim(),
);
final createdProfile = await UserProfile.db.insertRow(
session,
UserProfile(
authUserId: authUserId,
userName: userProfile.userName,
fullName: userProfile.fullName,
email: userProfile.email,
),
transaction: transaction,
);
final createdProfileModel = createdProfile.toModel();
await UserProfileConfig.current.onAfterUserProfileCreated?.call(
session,
createdProfileModel,
transaction: transaction,
);
return createdProfileModel;
},
);
}