Add a Media model
This commit is contained in:
parent
2c33e1612d
commit
0b5eb2c946
|
@ -0,0 +1,2 @@
|
||||||
|
-- This file should undo anything in `up.sql`
|
||||||
|
DROP TABLE medias;
|
|
@ -0,0 +1,10 @@
|
||||||
|
-- Your SQL goes here
|
||||||
|
CREATE TABLE medias (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
file_path TEXT NOT NULL DEFAULT '',
|
||||||
|
alt_text TEXT NOT NULL DEFAULT '',
|
||||||
|
is_remote BOOLEAN NOT NULL DEFAULT 'f',
|
||||||
|
remote_url TEXT,
|
||||||
|
sensitive BOOLEAN NOT NULL DEFAULT 'f',
|
||||||
|
content_warning TEXT
|
||||||
|
)
|
|
@ -78,7 +78,7 @@ fn get_next_id(conn: &PgConnection, seq: &str) -> i32 {
|
||||||
// We cant' use currval because it may fail if nextval have never been called before
|
// We cant' use currval because it may fail if nextval have never been called before
|
||||||
let next = select(nextval(seq)).get_result::<i64>(conn).expect("Next ID fail");
|
let next = select(nextval(seq)).get_result::<i64>(conn).expect("Next ID fail");
|
||||||
if next > 1 {
|
if next > 1 {
|
||||||
select(setval(seq, next - 1)).get_result::<i64>(conn).expect("Reset ID fail");
|
select(setval(seq, next - 1)).get_result::<i64>(conn).expect("Reset ID fail");
|
||||||
}
|
}
|
||||||
next as i32
|
next as i32
|
||||||
}
|
}
|
||||||
|
@ -87,7 +87,7 @@ fn get_next_id(conn: &PgConnection, seq: &str) -> i32 {
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
pub static ref BASE_URL: String = env::var("BASE_URL")
|
pub static ref BASE_URL: String = env::var("BASE_URL")
|
||||||
.unwrap_or(format!("127.0.0.1:{}", env::var("ROCKET_PORT").unwrap_or(String::from("8000"))));
|
.unwrap_or(format!("127.0.0.1:{}", env::var("ROCKET_PORT").unwrap_or(String::from("8000"))));
|
||||||
|
|
||||||
pub static ref DB_URL: String = env::var("DB_URL")
|
pub static ref DB_URL: String = env::var("DB_URL")
|
||||||
.unwrap_or(format!("postgres://plume:plume@localhost/{}", env::var("DB_NAME").unwrap_or(String::from("plume"))));
|
.unwrap_or(format!("postgres://plume:plume@localhost/{}", env::var("DB_NAME").unwrap_or(String::from("plume"))));
|
||||||
|
|
||||||
|
@ -111,6 +111,7 @@ pub mod db_conn;
|
||||||
pub mod follows;
|
pub mod follows;
|
||||||
pub mod instance;
|
pub mod instance;
|
||||||
pub mod likes;
|
pub mod likes;
|
||||||
|
pub mod medias;
|
||||||
pub mod mentions;
|
pub mod mentions;
|
||||||
pub mod notifications;
|
pub mod notifications;
|
||||||
pub mod post_authors;
|
pub mod post_authors;
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
use diesel::{self, PgConnection, QueryDsl, ExpressionMethods, RunQueryDsl};
|
||||||
|
use schema::medias;
|
||||||
|
|
||||||
|
#[derive(Queryable)]
|
||||||
|
pub struct Media {
|
||||||
|
pub id: i32,
|
||||||
|
pub file_path: String,
|
||||||
|
pub alt_text: String,
|
||||||
|
pub is_remote: bool,
|
||||||
|
pub remote_url: Option<String>,
|
||||||
|
pub sensitive: bool,
|
||||||
|
pub content_warning: Option<String>
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Insertable)]
|
||||||
|
#[table_name = "medias"]
|
||||||
|
pub struct NewMedia {
|
||||||
|
pub file_path: String,
|
||||||
|
pub alt_text: String,
|
||||||
|
pub is_remote: bool,
|
||||||
|
pub remote_url: Option<String>,
|
||||||
|
pub sensitive: bool,
|
||||||
|
pub content_warning: Option<String>
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Media {
|
||||||
|
insert!(medias, NewMedia);
|
||||||
|
get!(medias);
|
||||||
|
}
|
|
@ -72,6 +72,18 @@ table! {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table! {
|
||||||
|
medias (id) {
|
||||||
|
id -> Int4,
|
||||||
|
file_path -> Text,
|
||||||
|
alt_text -> Text,
|
||||||
|
is_remote -> Bool,
|
||||||
|
remote_url -> Nullable<Text>,
|
||||||
|
sensitive -> Bool,
|
||||||
|
content_warning -> Nullable<Text>,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
table! {
|
table! {
|
||||||
mentions (id) {
|
mentions (id) {
|
||||||
id -> Int4,
|
id -> Int4,
|
||||||
|
@ -170,6 +182,7 @@ allow_tables_to_appear_in_same_query!(
|
||||||
follows,
|
follows,
|
||||||
instances,
|
instances,
|
||||||
likes,
|
likes,
|
||||||
|
medias,
|
||||||
mentions,
|
mentions,
|
||||||
notifications,
|
notifications,
|
||||||
post_authors,
|
post_authors,
|
||||||
|
|
Loading…
Reference in New Issue