Compare commits
1 Commits
5d002e5063
...
31945601c1
Author | SHA1 | Date |
---|---|---|
projectmoon | 31945601c1 |
|
@ -18,26 +18,6 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"26903a92a7de34df3e227fe599e41ae1bb61612eb80befad398383af36df0ce4": {
|
|
||||||
"query": "DELETE FROM accounts WHERE user_id = ?",
|
|
||||||
"describe": {
|
|
||||||
"columns": [],
|
|
||||||
"parameters": {
|
|
||||||
"Right": 1
|
|
||||||
},
|
|
||||||
"nullable": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"2d4a32735da04509c2e3c4f99bef79ef699964f58ae332b0611f3de088596e1e": {
|
|
||||||
"query": "INSERT INTO accounts (user_id, password, account_status)\n VALUES (?, ?, ?)\n ON CONFLICT(user_id) DO\n UPDATE SET password = ?, account_status = ?",
|
|
||||||
"describe": {
|
|
||||||
"columns": [],
|
|
||||||
"parameters": {
|
|
||||||
"Right": 5
|
|
||||||
},
|
|
||||||
"nullable": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"59313c67900a1a9399389720b522e572f181ae503559cd2b49d6305acb9e2207": {
|
"59313c67900a1a9399389720b522e572f181ae503559cd2b49d6305acb9e2207": {
|
||||||
"query": "SELECT key, value as \"value: i32\" FROM user_variables\n WHERE room_id = ? AND user_id = ?",
|
"query": "SELECT key, value as \"value: i32\" FROM user_variables\n WHERE room_id = ? AND user_id = ?",
|
||||||
"describe": {
|
"describe": {
|
||||||
|
@ -80,16 +60,6 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"667b26343ce44e1c48ac689ce887ef6a0558a2ce199f7372a5dce58672499c5a": {
|
|
||||||
"query": "INSERT INTO user_state (user_id, active_room)\n VALUES (?, ?)\n ON CONFLICT(user_id) DO\n UPDATE SET active_room = ?",
|
|
||||||
"describe": {
|
|
||||||
"columns": [],
|
|
||||||
"parameters": {
|
|
||||||
"Right": 3
|
|
||||||
},
|
|
||||||
"nullable": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"711d222911c1258365a6a0de1fe00eeec4686fd3589e976e225ad599e7cfc75d": {
|
"711d222911c1258365a6a0de1fe00eeec4686fd3589e976e225ad599e7cfc75d": {
|
||||||
"query": "SELECT count(*) as \"count: i32\" FROM user_variables\n WHERE room_id = ? and user_id = ?",
|
"query": "SELECT count(*) as \"count: i32\" FROM user_variables\n WHERE room_id = ? and user_id = ?",
|
||||||
"describe": {
|
"describe": {
|
||||||
|
@ -125,15 +95,5 @@
|
||||||
false
|
false
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"dce9bb45cf954054a920ee8b53852c6d562e3588d76bbfaa1433d8309d4e4921": {
|
|
||||||
"query": "DELETE FROM user_state WHERE user_id = ?",
|
|
||||||
"describe": {
|
|
||||||
"columns": [],
|
|
||||||
"parameters": {
|
|
||||||
"Right": 1
|
|
||||||
},
|
|
||||||
"nullable": []
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,29 +10,29 @@ impl Users for Database {
|
||||||
async fn upsert_user(&self, user: &User) -> Result<(), DataError> {
|
async fn upsert_user(&self, user: &User) -> Result<(), DataError> {
|
||||||
let mut tx = self.conn.begin().await?;
|
let mut tx = self.conn.begin().await?;
|
||||||
|
|
||||||
sqlx::query!(
|
sqlx::query(
|
||||||
r#"INSERT INTO accounts (user_id, password, account_status)
|
r#"INSERT INTO accounts (user_id, password, account_status)
|
||||||
VALUES (?, ?, ?)
|
VALUES (?, ?, ?)
|
||||||
ON CONFLICT(user_id) DO
|
ON CONFLICT(user_id) DO
|
||||||
UPDATE SET password = ?, account_status = ?"#,
|
UPDATE SET password = ?, account_status = ?"#,
|
||||||
user.username,
|
|
||||||
user.password,
|
|
||||||
user.account_status,
|
|
||||||
user.password,
|
|
||||||
user.account_status
|
|
||||||
)
|
)
|
||||||
|
.bind(&user.username)
|
||||||
|
.bind(&user.password)
|
||||||
|
.bind(&user.account_status)
|
||||||
|
.bind(&user.password)
|
||||||
|
.bind(&user.account_status)
|
||||||
.execute(&mut tx)
|
.execute(&mut tx)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
sqlx::query!(
|
sqlx::query(
|
||||||
r#"INSERT INTO user_state (user_id, active_room)
|
r#"INSERT INTO user_state (user_id, active_room)
|
||||||
VALUES (?, ?)
|
VALUES (?, ?)
|
||||||
ON CONFLICT(user_id) DO
|
ON CONFLICT(user_id) DO
|
||||||
UPDATE SET active_room = ?"#,
|
UPDATE SET active_room = ?"#,
|
||||||
user.username,
|
|
||||||
user.active_room,
|
|
||||||
user.active_room
|
|
||||||
)
|
)
|
||||||
|
.bind(&user.username)
|
||||||
|
.bind(&user.active_room)
|
||||||
|
.bind(&user.active_room)
|
||||||
.execute(&mut tx)
|
.execute(&mut tx)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
|
@ -43,11 +43,13 @@ impl Users for Database {
|
||||||
async fn delete_user(&self, username: &str) -> Result<(), DataError> {
|
async fn delete_user(&self, username: &str) -> Result<(), DataError> {
|
||||||
let mut tx = self.conn.begin().await?;
|
let mut tx = self.conn.begin().await?;
|
||||||
|
|
||||||
sqlx::query!(r#"DELETE FROM accounts WHERE user_id = ?"#, username)
|
sqlx::query(r#"DELETE FROM accounts WHERE user_id = ?"#)
|
||||||
|
.bind(&username)
|
||||||
.execute(&mut tx)
|
.execute(&mut tx)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
sqlx::query!(r#"DELETE FROM user_state WHERE user_id = ?"#, username)
|
sqlx::query(r#"DELETE FROM user_state WHERE user_id = ?"#)
|
||||||
|
.bind(&username)
|
||||||
.execute(&mut tx)
|
.execute(&mut tx)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
|
@ -197,7 +199,7 @@ mod tests {
|
||||||
.upsert_user(&User {
|
.upsert_user(&User {
|
||||||
username: "myuser".to_string(),
|
username: "myuser".to_string(),
|
||||||
password: Some("abc".to_string()),
|
password: Some("abc".to_string()),
|
||||||
account_status: AccountStatus::AwaitingActivation,
|
account_status: AccountStatus::Registered,
|
||||||
active_room: Some("myroom".to_string()),
|
active_room: Some("myroom".to_string()),
|
||||||
})
|
})
|
||||||
.await;
|
.await;
|
||||||
|
@ -218,9 +220,9 @@ mod tests {
|
||||||
let user = user.unwrap();
|
let user = user.unwrap();
|
||||||
assert_eq!(user.username, "myuser");
|
assert_eq!(user.username, "myuser");
|
||||||
assert_eq!(user.password, Some("abc".to_string()));
|
assert_eq!(user.password, Some("abc".to_string()));
|
||||||
assert_eq!(user.account_status, AccountStatus::AwaitingActivation);
|
|
||||||
|
|
||||||
//These should be default values because the state record is missing.
|
//These should be default values because the state record is missing.
|
||||||
|
assert_eq!(user.account_status, AccountStatus::NotRegistered);
|
||||||
assert_eq!(user.active_room, None);
|
assert_eq!(user.active_room, None);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue