Merge pull request #1913 from zed-industries/Add-column-to-signups-for-added-to-mailing-list

Joseph T. Lyons created

Add "added_to_mailing_list" column on signups table

Change summary

crates/collab/migrations/20221125192125_add_added_to_mailing_list_to_signups.sql | 2 
crates/collab/src/db.rs                                                          | 7 
crates/collab/src/db_tests.rs                                                    | 1 
3 files changed, 8 insertions(+), 2 deletions(-)

Detailed changes

crates/collab/src/db.rs 🔗

@@ -390,10 +390,11 @@ impl Db<sqlx::Postgres> {
                     platform_unknown,
                     editor_features,
                     programming_languages,
-                    device_id
+                    device_id,
+                    added_to_mailing_list
                 )
                 VALUES
-                    ($1, $2, FALSE, $3, $4, $5, FALSE, $6, $7, $8)
+                    ($1, $2, FALSE, $3, $4, $5, FALSE, $6, $7, $8, $9)
                 ON CONFLICT (email_address) DO UPDATE SET
                     email_address = excluded.email_address
                 RETURNING id
@@ -407,6 +408,7 @@ impl Db<sqlx::Postgres> {
             .bind(&signup.editor_features)
             .bind(&signup.programming_languages)
             .bind(&signup.device_id)
+            .bind(&signup.added_to_mailing_list)
             .execute(&self.pool)
             .await?;
             Ok(())
@@ -1272,6 +1274,7 @@ pub struct Signup {
     pub editor_features: Vec<String>,
     pub programming_languages: Vec<String>,
     pub device_id: Option<String>,
+    pub added_to_mailing_list: bool,
 }
 
 #[derive(Clone, Debug, PartialEq, Deserialize, Serialize, FromRow)]

crates/collab/src/db_tests.rs 🔗

@@ -657,6 +657,7 @@ async fn test_signups() {
             editor_features: vec!["speed".into()],
             programming_languages: vec!["rust".into(), "c".into()],
             device_id: Some(format!("device_id_{i}")),
+            added_to_mailing_list: i != 0, // One user failed to subscribe
         })
         .collect::<Vec<Signup>>();