diff --git a/sql/trackable/fetch_all_with_ip.sql b/sql/trackable/fetch_all_with_ip.sql new file mode 100644 index 0000000..51524ad --- /dev/null +++ b/sql/trackable/fetch_all_with_ip.sql @@ -0,0 +1 @@ +SELECT * FROM trackable WHERE ip_address = $1; \ No newline at end of file diff --git a/sql/trackable/get_with_id.sql b/sql/trackable/get_with_id.sql new file mode 100644 index 0000000..020196f --- /dev/null +++ b/sql/trackable/get_with_id.sql @@ -0,0 +1 @@ +SELECT * FROM trackable WHERE id = $1; \ No newline at end of file diff --git a/sql/trackable/insert.sql b/sql/trackable/insert.sql new file mode 100644 index 0000000..9b3ec71 --- /dev/null +++ b/sql/trackable/insert.sql @@ -0,0 +1,5 @@ +INSERT INTO trackable ( + id, who_was, ip_address, browser_width, browser_height, user_agent, time_created +) VALUES( + $1, $2, $3, $4, $5, $6, $7 +) RETURNING *; \ No newline at end of file diff --git a/src/dao/click.rs b/src/dao/click.rs index e69de29..8b13789 100644 --- a/src/dao/click.rs +++ b/src/dao/click.rs @@ -0,0 +1 @@ + diff --git a/src/dao/mod.rs b/src/dao/mod.rs index 49daa52..48e8134 100644 --- a/src/dao/mod.rs +++ b/src/dao/mod.rs @@ -1,5 +1,9 @@ pub mod click; +#[allow(unused)] pub mod project; +#[allow(unused)] pub mod property; +#[allow(unused)] pub mod realtor; -pub mod trackable; \ No newline at end of file +#[allow(unused)] +pub mod trackable; diff --git a/src/dao/project.rs b/src/dao/project.rs index e69de29..8b13789 100644 --- a/src/dao/project.rs +++ b/src/dao/project.rs @@ -0,0 +1 @@ + diff --git a/src/dao/property.rs b/src/dao/property.rs index e69de29..8b13789 100644 --- a/src/dao/property.rs +++ b/src/dao/property.rs @@ -0,0 +1 @@ + diff --git a/src/dao/realtor.rs b/src/dao/realtor.rs index 0f85757..037805e 100644 --- a/src/dao/realtor.rs +++ b/src/dao/realtor.rs @@ -2,19 +2,61 @@ use realtor_lp_types::domain::realtor::Realtor; use sqlx::PgPool; use uuid::Uuid; - pub async fn insert_realtor(conn: &PgPool, realtor: Realtor) -> Result { - sqlx::query_file_as!(Realtor, "sql/realtor/insert.sql", realtor.id, realtor.name, realtor.bio, realtor.phone_number, realtor.email, realtor.profile_picture_url, realtor.show_projects, realtor.shortcode, realtor.remax_agent_id, realtor.time_created).fetch_one(conn).await + sqlx::query_file_as!( + Realtor, + "sql/realtor/insert.sql", + realtor.id, + realtor.name, + realtor.bio, + realtor.phone_number, + realtor.email, + realtor.profile_picture_url, + realtor.show_projects, + realtor.shortcode, + realtor.remax_agent_id, + realtor.time_created + ) + .fetch_one(conn) + .await } -pub async fn get_realtor_with_id(conn: &PgPool, realtor_id: &Uuid) -> Result, sqlx::Error> { - sqlx::query_file_as!(Realtor, "sql/realtor/get_with_id.sql", realtor_id).fetch_optional(conn).await +pub async fn get_realtor_with_id( + conn: &PgPool, + realtor_id: &Uuid, +) -> Result, sqlx::Error> { + sqlx::query_file_as!(Realtor, "sql/realtor/get_with_id.sql", realtor_id) + .fetch_optional(conn) + .await } -pub async fn get_realtor_with_shortcode(conn: &PgPool, realtor_shortcode: &String) -> Result, sqlx::Error> { - sqlx::query_file_as!(Realtor, "sql/realtor/get_with_shortcode.sql", realtor_shortcode).fetch_optional(conn).await +pub async fn get_realtor_with_shortcode( + conn: &PgPool, + realtor_shortcode: &String, +) -> Result, sqlx::Error> { + sqlx::query_file_as!( + Realtor, + "sql/realtor/get_with_shortcode.sql", + realtor_shortcode + ) + .fetch_optional(conn) + .await } pub async fn update_realtor(conn: &PgPool, realtor: Realtor) -> Result { - sqlx::query_file_as!(Realtor, "sql/realtor/update.sql", realtor.id, realtor.name, realtor.bio, realtor.phone_number, realtor.email, realtor.profile_picture_url, realtor.show_projects, realtor.remax_agent_id, realtor.last_updated).fetch_one(conn).await + sqlx::query_file_as!( + Realtor, + "sql/realtor/update.sql", + realtor.id, + realtor.name, + realtor.bio, + realtor.phone_number, + realtor.email, + realtor.profile_picture_url, + realtor.show_projects, + realtor.remax_agent_id, + realtor.last_updated + ) + .fetch_one(conn) + .await } diff --git a/src/dao/trackable.rs b/src/dao/trackable.rs index e69de29..01c98a4 100644 --- a/src/dao/trackable.rs +++ b/src/dao/trackable.rs @@ -0,0 +1,30 @@ +use realtor_lp_types::domain::trackable::Trackable; +use sqlx::PgPool; +use uuid::Uuid; + +pub async fn insert_trackable( + conn: &PgPool, + trackable: Trackable, +) -> Result { + sqlx::query_file_as!( + Trackable, + "sql/trackable/insert.sql", + trackable.id, + trackable.who_was, + trackable.ip_address, + trackable.browser_width, + trackable.browser_height, + trackable.user_agent, + trackable.time_created + ) + .fetch_one(conn) + .await +} + +pub async fn get_trackable_with_id(conn: &PgPool, trackable_id: &Uuid) -> Result, sqlx::Error> { + sqlx::query_file_as!(Trackable, "sql/trackable/get_with_id.sql", trackable_id).fetch_optional(conn).await +} + +pub async fn fetch_trackables_with_ip_address(conn: &PgPool, ip_addr: String) -> Result, sqlx::Error> { + sqlx::query_file_as!(Trackable, "sql/trackable/fetch_all_with_ip.sql", ip_addr).fetch_all(conn).await +} \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index cf2e764..c578045 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,5 +4,4 @@ mod services; mod utils; #[tokio::main] -async fn main() { -} +async fn main() {} diff --git a/src/routes/main_router.rs b/src/routes/main_router.rs index e69de29..8b13789 100644 --- a/src/routes/main_router.rs +++ b/src/routes/main_router.rs @@ -0,0 +1 @@ + diff --git a/src/routes/mod.rs b/src/routes/mod.rs index 17723fe..abbbe10 100644 --- a/src/routes/mod.rs +++ b/src/routes/mod.rs @@ -1 +1 @@ -pub mod main_router; \ No newline at end of file +pub mod main_router; diff --git a/src/services/mod.rs b/src/services/mod.rs index e69de29..8b13789 100644 --- a/src/services/mod.rs +++ b/src/services/mod.rs @@ -0,0 +1 @@ + diff --git a/src/utils/mod.rs b/src/utils/mod.rs index e69de29..8b13789 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -0,0 +1 @@ +