Updated schemas
This commit is contained in:
parent
55395d279e
commit
6322736baf
@ -1,10 +1,10 @@
|
||||
create table "members" (
|
||||
id varchar(7) primary key,
|
||||
first_name text not null,
|
||||
full_name text not null,
|
||||
registration_token text unique not null,
|
||||
CREATE TABLE "members" (
|
||||
member_id varchar(7) NOT NULL PRIMARY KEY,
|
||||
first_name text NOT NULL,
|
||||
full_name text NOT NULL,
|
||||
registration_token text NOT NULL UNIQUE,
|
||||
diploma text,
|
||||
hours text[] not null,
|
||||
groups text[] not null
|
||||
hours text[] NOT NULL,
|
||||
groups text[] NOT NULL
|
||||
);
|
||||
|
||||
|
13
server/migrations/002_create_users.sql
Normal file
13
server/migrations/002_create_users.sql
Normal file
@ -0,0 +1,13 @@
|
||||
CREATE TABLE "users" (
|
||||
user_id uuid NOT NULL PRIMARY KEY,
|
||||
email text UNIQUE,
|
||||
password text NOT NULL,
|
||||
admin boolean NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS users_members (
|
||||
user_id uuid NOT NULL REFERENCES users (user_id) ON UPDATE cascade ON DELETE cascade,
|
||||
member_id varchar(7) NOT NULL REFERENCES members (member_id) ON UPDATE cascade ON DELETE cascade,
|
||||
|
||||
CONSTRAINT users_members_pkey PRIMARY KEY (user_id, member_id)
|
||||
);
|
@ -5,7 +5,7 @@ use validator::Validate;
|
||||
#[derive(Debug, Validate)]
|
||||
pub struct Member {
|
||||
#[validate(length(equal = 7))]
|
||||
pub id: String,
|
||||
pub member_id: String,
|
||||
pub first_name: String,
|
||||
pub full_name: String,
|
||||
pub registration_token: Option<String>,
|
||||
@ -36,13 +36,13 @@ impl Member {
|
||||
}
|
||||
|
||||
let mut query_builder = QueryBuilder::new(
|
||||
"INSERT INTO members(id, first_name, full_name, registration_token, diploma, hours, groups) "
|
||||
"INSERT INTO members(member_id, first_name, full_name, registration_token, diploma, hours, groups) "
|
||||
);
|
||||
|
||||
query_builder.push_values(members.into_iter(), |mut b, member| {
|
||||
let registration_token = Alphanumeric.sample_string(&mut rand::rng(), 16);
|
||||
|
||||
b.push_bind(member.id);
|
||||
b.push_bind(member.member_id);
|
||||
b.push_bind(member.first_name);
|
||||
b.push_bind(member.full_name);
|
||||
b.push_bind(registration_token);
|
||||
@ -66,7 +66,7 @@ impl Member {
|
||||
}
|
||||
|
||||
for member in members {
|
||||
sqlx::query!("UPDATE ONLY members SET first_name = $1, full_name = $2, diploma = $3, hours = $4, groups = $5 WHERE id = $6", member.first_name, member.full_name, member.diploma, &member.hours, &member.groups, member.id).execute(&mut **transaction).await?;
|
||||
sqlx::query!("UPDATE ONLY members SET first_name = $1, full_name = $2, diploma = $3, hours = $4, groups = $5 WHERE member_id = $6", member.first_name, member.full_name, member.diploma, &member.hours, &member.groups, member.member_id).execute(&mut **transaction).await?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
@ -78,7 +78,7 @@ impl Member {
|
||||
) -> Result<(), sqlx::Error> {
|
||||
sqlx::query!(
|
||||
"
|
||||
DELETE FROM members WHERE id = ANY($1)
|
||||
DELETE FROM members WHERE member_id = ANY($1)
|
||||
",
|
||||
member_ids
|
||||
)
|
||||
|
@ -18,7 +18,7 @@ use crate::database::model::Member as DbMember;
|
||||
impl From<DbMember> for Member {
|
||||
fn from(value: DbMember) -> Self {
|
||||
Member {
|
||||
id: value.id,
|
||||
id: value.member_id,
|
||||
name: Name {
|
||||
first: value.first_name,
|
||||
full: value.full_name,
|
||||
@ -34,7 +34,7 @@ impl From<DbMember> for Member {
|
||||
impl From<Member> for DbMember {
|
||||
fn from(value: Member) -> Self {
|
||||
DbMember {
|
||||
id: value.id,
|
||||
member_id: value.id,
|
||||
first_name: value.name.first,
|
||||
full_name: value.name.full,
|
||||
registration_token: None,
|
||||
|
Loading…
x
Reference in New Issue
Block a user