Skip to content

Commit ac5a47d

Browse files
committed
feat: readonly tags
1 parent 6c73914 commit ac5a47d

File tree

3 files changed

+26
-7
lines changed

3 files changed

+26
-7
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-- Add down migration script here
2+
3+
ALTER TABLE mod_tags DROP is_readonly;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-- Add up migration script here
2+
3+
ALTER TABLE mod_tags
4+
ADD is_readonly BOOLEAN NOT NULL DEFAULT false;

src/types/models/tag.rs

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,19 @@ pub struct Tag {
1515
pub id: i32,
1616
pub name: String,
1717
pub display_name: String,
18+
pub is_readonly: bool,
1819
}
1920

2021
impl Tag {
2122
pub async fn get_tags(pool: &mut PgConnection) -> Result<Vec<String>, ApiError> {
22-
let tags = match sqlx::query!("SELECT name FROM mod_tags")
23-
.fetch_all(&mut *pool)
24-
.await
23+
let tags = match sqlx::query!(
24+
"
25+
SELECT name FROM mod_tags
26+
WHERE is_readonly = false
27+
"
28+
)
29+
.fetch_all(&mut *pool)
30+
.await
2531
{
2632
Ok(tags) => tags,
2733
Err(e) => {
@@ -38,13 +44,15 @@ impl Tag {
3844
id: i32,
3945
name: String,
4046
display_name: Option<String>,
47+
is_readonly: bool,
4148
}
4249
let tags = sqlx::query_as!(
4350
QueryResult,
4451
"SELECT
4552
id,
4653
name,
47-
display_name
54+
display_name,
55+
is_readonly
4856
FROM mod_tags"
4957
)
5058
.fetch_all(&mut *conn)
@@ -60,6 +68,7 @@ impl Tag {
6068
id: i.id,
6169
name: i.name.clone(),
6270
display_name: i.display_name.unwrap_or(i.name),
71+
is_readonly: i.is_readonly,
6372
})
6473
.collect())
6574
}
@@ -68,9 +77,12 @@ impl Tag {
6877
tags: Vec<String>,
6978
pool: &mut PgConnection,
7079
) -> Result<Vec<FetchedTag>, ApiError> {
71-
let db_tags = match sqlx::query_as!(FetchedTag, "SELECT id, name FROM mod_tags")
72-
.fetch_all(&mut *pool)
73-
.await
80+
let db_tags = match sqlx::query_as!(
81+
FetchedTag,
82+
"SELECT id, name FROM mod_tags WHERE is_readonly = false"
83+
)
84+
.fetch_all(&mut *pool)
85+
.await
7486
{
7587
Ok(tags) => tags,
7688
Err(e) => {

0 commit comments

Comments
 (0)