Compare commits
2 commits
7f3cf3b2b5
...
b2c5dc2917
Author | SHA1 | Date | |
---|---|---|---|
b2c5dc2917 | |||
143b795b92 |
4 changed files with 18 additions and 3 deletions
|
@ -2,6 +2,7 @@ CREATE TABLE schoolyears (
|
|||
id SERIAL PRIMARY KEY,
|
||||
untis_id INTEGER NOT NULL UNIQUE,
|
||||
name VARCHAR NOT NULL,
|
||||
active BOOLEAN NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP
|
||||
);
|
||||
|
@ -15,7 +16,7 @@ CREATE TABLE tenants (
|
|||
untis_id INTEGER NOT NULL UNIQUE,
|
||||
schoolyear_id INTEGER NOT NULL REFERENCES schoolyears(id),
|
||||
name VARCHAR NOT NULL,
|
||||
active BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
active BOOLEAN NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP
|
||||
);
|
||||
|
|
|
@ -10,6 +10,7 @@ pub struct Schoolyear {
|
|||
pub id: i32,
|
||||
pub untis_id: i32,
|
||||
pub name: String,
|
||||
pub active: bool,
|
||||
pub created_at: NaiveDateTime,
|
||||
pub updated_at: Option<NaiveDateTime>,
|
||||
}
|
||||
|
@ -19,6 +20,7 @@ pub struct Schoolyear {
|
|||
pub struct NewSchoolyear<'a> {
|
||||
pub untis_id: i32,
|
||||
pub name: &'a str,
|
||||
pub active: bool,
|
||||
}
|
||||
|
||||
#[derive(Identifiable, Queryable, Associations, Debug)]
|
||||
|
|
|
@ -13,6 +13,7 @@ diesel::table! {
|
|||
id -> Integer,
|
||||
untis_id -> Integer,
|
||||
name -> VarChar,
|
||||
active -> Bool,
|
||||
created_at -> Timestamp,
|
||||
updated_at -> Nullable<Timestamp>,
|
||||
}
|
||||
|
|
|
@ -24,15 +24,26 @@ async fn fetch_schoolyears(client: &untis::Client, db_conn: &mut PgConnection) -
|
|||
.map(|y| db::models::NewSchoolyear {
|
||||
untis_id: y.id,
|
||||
name: &y.name,
|
||||
active: false,
|
||||
})
|
||||
.collect::<Vec<db::models::NewSchoolyear>>(),
|
||||
)
|
||||
.execute(db_conn)?;
|
||||
|
||||
Ok(db::schema::schoolyears::table
|
||||
let id = db::schema::schoolyears::table
|
||||
.filter(db::schema::schoolyears::untis_id.eq(client.current_schoolyear().await?.id))
|
||||
.select(db::schema::schoolyears::id)
|
||||
.first(db_conn)?)
|
||||
.first(db_conn)?;
|
||||
|
||||
diesel::update(db::schema::schoolyears::table)
|
||||
.set(db::schema::schoolyears::active.eq(false))
|
||||
.execute(db_conn)?;
|
||||
diesel::update(db::schema::schoolyears::table)
|
||||
.filter(db::schema::schoolyears::id.eq(id))
|
||||
.set(db::schema::schoolyears::active.eq(true))
|
||||
.execute(db_conn)?;
|
||||
|
||||
Ok(id)
|
||||
}
|
||||
|
||||
async fn fetch_current_tenant(
|
||||
|
|
Loading…
Reference in a new issue