diff options
Diffstat (limited to 'src/db.rs')
-rw-r--r-- | src/db.rs | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -2,8 +2,6 @@ use crate::error::Error; use crate::models; use bcrypt; use diesel::connection::Connection; -use diesel::dsl::exists; -use diesel::dsl::select; use diesel::pg::PgConnection; use diesel::ExpressionMethods; use diesel::QueryDsl; @@ -24,6 +22,20 @@ pub fn create_config(conn: &PgConnection, config: &models::Config) -> Result<(), }) } +pub fn insert_strava_token(conn: &PgConnection, token: &models::StravaToken) + -> Result<(), Error> { + use crate::schema::strava_tokens; + conn.transaction(|| { + diesel::delete(strava_tokens::table) + .filter(strava_tokens::username.eq(&token.username)) + .execute(conn)?; + diesel::insert_into(strava_tokens::table) + .values(token) + .execute(conn)?; + Ok(()) + }) +} + pub fn get_config(conn: &PgConnection) -> Result<models::Config, Error> { use crate::schema::config; config::table |