Merge pull request #1941 from zed-industries/Allow-overwriting-signup-data

Allow overwriting signup data if a user signs up more than once with the same email address
This commit is contained in:
Joseph T. Lyons
2022-12-08 16:11:28 -05:00
committed by GitHub
5 changed files with 145 additions and 2 deletions
+24 -1
View File
@@ -669,7 +669,15 @@ impl Database {
})
.on_conflict(
OnConflict::column(signup::Column::EmailAddress)
.update_column(signup::Column::EmailAddress)
.update_columns([
signup::Column::PlatformMac,
signup::Column::PlatformWindows,
signup::Column::PlatformLinux,
signup::Column::EditorFeatures,
signup::Column::ProgrammingLanguages,
signup::Column::DeviceId,
signup::Column::AddedToMailingList,
])
.to_owned(),
)
.exec(&*tx)
@@ -679,6 +687,21 @@ impl Database {
.await
}
pub async fn get_signup(&self, email_address: &str) -> Result<signup::Model> {
self.transaction(|tx| async move {
let signup = signup::Entity::find()
.filter(signup::Column::EmailAddress.eq(email_address))
.one(&*tx)
.await?
.ok_or_else(|| {
anyhow!("signup with email address {} doesn't exist", email_address)
})?;
Ok(signup)
})
.await
}
pub async fn get_waitlist_summary(&self) -> Result<WaitlistSummary> {
self.transaction(|tx| async move {
let query = "