Avec un cafe.
This commit is contained in:
1 parent
d78b4f1d90
commit
352bb498d4
7 files changed
+86
-50
No files matched your search
+4
-20
@@ -1,9 +1,9 @@
|
||||
use rusqlite::{Connection, OptionalExtension, params, Result, Row, ToSql, Transaction};
|
||||
use serde::Serialize;
|
||||
|
||||
use crate::db::_external_id::{Id, SecurityId, UserId};
|
||||
use crate::db::users::User;
|
||||
|
||||
|
||||
#[derive(Debug, Serialize, PartialEq)]
|
||||
pub enum SecurityType {
|
||||
Currency,
|
||||
@@ -71,24 +71,9 @@ pub fn create_security(tx: &Transaction,
|
||||
tx.execute(q, params)?;
|
||||
let new_sec_id = tx.last_insert_rowid() as i32;
|
||||
|
||||
let q = "INSERT INTO
|
||||
security_permissions(security_id, user_id)
|
||||
VALUES(?1, ?2)";
|
||||
tx.execute(q, params![new_sec_id, owner])?;
|
||||
|
||||
return get_security_by_id(tx, new_sec_id);
|
||||
}
|
||||
|
||||
pub fn is_owner(tx: &Transaction, sec_id: &SecurityId, user_id: &UserId) -> Result<bool> {
|
||||
let q = "SELECT id
|
||||
FROM security_permissions
|
||||
WHERE security_id = ?1 AND user_id = ?2
|
||||
LIMIT 1";
|
||||
let ret: Option<u32> = tx.query_row(q,
|
||||
params![sec_id, user_id],
|
||||
|r| r.get(0)).optional()?;
|
||||
return Ok(ret.is_some());
|
||||
}
|
||||
|
||||
pub fn get_security_by_id(tx: &Transaction, id: i32) -> Result<Security> {
|
||||
let q = "SELECT id AS sec_id, security_type AS sec_security_type, symbol AS sec_symbol
|
||||
@@ -115,10 +100,12 @@ pub fn list_securities(conn: &Connection) -> Result<Vec<Security>> {
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use rusqlite::{Connection, params};
|
||||
use super::*;
|
||||
|
||||
use crate::db::_test_utils::*;
|
||||
use crate::migration;
|
||||
|
||||
use super::*;
|
||||
|
||||
fn setup() -> (Connection, Vec<User>) {
|
||||
let mut conn = Connection::open_in_memory().unwrap();
|
||||
migration::apply_migrations(&mut conn).unwrap();
|
||||
@@ -154,9 +141,6 @@ mod test {
|
||||
let tx = conn.transaction()?;
|
||||
let sec = create_security(&tx, &sec, &owner.id())?;
|
||||
|
||||
assert!(is_owner(&tx, &sec.id(), &owner.id())?);
|
||||
assert!(!is_owner(&tx, &sec.id(), ¬_owner.id())?);
|
||||
|
||||
tx.commit()
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user