From 0850dab8828ce100b3294d927da878111871188f Mon Sep 17 00:00:00 2001 From: JMARyA Date: Fri, 27 Dec 2024 04:48:06 +0100 Subject: [PATCH] add user sql --- migrations/0000_users.sql | 24 ++++++++++++++++++++++++ src/main.rs | 5 +++++ 2 files changed, 29 insertions(+) create mode 100644 migrations/0000_users.sql diff --git a/migrations/0000_users.sql b/migrations/0000_users.sql new file mode 100644 index 0000000..704a007 --- /dev/null +++ b/migrations/0000_users.sql @@ -0,0 +1,24 @@ +CREATE TYPE user_role AS ENUM ('regular', 'admin'); +CREATE TYPE session_kind AS ENUM ('api', 'user'); + +CREATE TABLE IF NOT EXISTS users ( + username VARCHAR(255) NOT NULL PRIMARY KEY, + "password" text NOT NULL, + user_role user_role NOT NULL DEFAULT 'regular' +); + +CREATE TABLE IF NOT EXISTS user_session ( + id UUID NOT NULL PRIMARY KEY DEFAULT gen_random_uuid(), + token text NOT NULL, + "user" varchar(255) NOT NULL, + "created" timestamptz NOT NULL DEFAULT NOW(), + "csrf" UUID NOT NULL DEFAULT gen_random_uuid(), + "name" varchar(255) + kind session_kind NOT NULL DEFAULT 'user', + FOREIGN KEY("user") REFERENCES users(username) +); + +CREATE TABLE IF NOT EXISTS user_profile_pic ( + username VARCHAR(255) NOT NULL PRIMARY KEY, + "image" bytea NOT NULL +); \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 4b880b9..3517132 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,7 @@ // - PkgDB Abstraction // - Pkg Abstraction +use based::get_pg; use based::page::{Shell, render_page}; use based::request::{RequestContext, StringResponse}; use maud::html; @@ -38,6 +39,10 @@ pub async fn index_page(ctx: RequestContext) -> StringResponse { #[rocket::launch] async fn launch() -> _ { env_logger::init(); + + let pg = get_pg!(); + sqlx::migrate!("./migrations").run(pg).await.unwrap(); + rocket::build().mount("/", routes![ index_page, routes::pkg_route,