This commit is contained in:
2024-12-24 23:02:42 +01:00
parent 2a44308602
commit 919593ab2d
2 changed files with 25 additions and 17 deletions

View File

@@ -38,11 +38,14 @@ async fn get_users(pagination: Query<Pagination>, db: Database) -> impl IntoResp
user_settings.first_name,
user_settings.username,
user_settings.source,
ARRAY_AGG((
languages.id,
languages.label,
languages.code
)) AS "allowed_langs: Vec<UserLanguage>"
COALESCE(
JSON_AGG(JSON_BUILD_OBJECT(
'id', languages.id,
'label', languages.label,
'code', languages.code
)),
'[]'::JSON
) AS "allowed_langs!: Vec<UserLanguage>"
FROM user_settings
LEFT JOIN users_languages ON user_settings.id = users_languages.user
LEFT JOIN languages ON users_languages.language = languages.id
@@ -72,11 +75,14 @@ async fn get_user(Path(user_id): Path<i64>, db: Database) -> impl IntoResponse {
user_settings.first_name,
user_settings.username,
user_settings.source,
ARRAY_AGG((
languages.id,
languages.label,
languages.code
)) AS "allowed_langs: Vec<UserLanguage>"
COALESCE(
JSON_AGG(JSON_BUILD_OBJECT(
'id', languages.id,
'label', languages.label,
'code', languages.code
)),
'[]'::JSON
) AS "allowed_langs!: Vec<UserLanguage>"
FROM user_settings
LEFT JOIN users_languages ON user_settings.id = users_languages.user
LEFT JOIN languages ON users_languages.language = languages.id
@@ -131,11 +137,14 @@ async fn create_or_update_user(
user_settings.first_name,
user_settings.username,
user_settings.source,
ARRAY_AGG((
languages.id,
languages.label,
languages.code
)) AS "allowed_langs: Vec<UserLanguage>"
COALESCE(
JSON_AGG(JSON_BUILD_OBJECT(
'id', languages.id,
'label', languages.label,
'code', languages.code
)),
'[]'::JSON
) AS "allowed_langs!: Vec<UserLanguage>"
FROM user_settings
LEFT JOIN users_languages ON user_settings.id = users_languages.user
LEFT JOIN languages ON users_languages.language = languages.id

View File

@@ -25,8 +25,7 @@ pub struct UserDetail {
pub first_name: String,
pub username: String,
pub source: String,
#[serde(default)]
pub allowed_langs: Option<Vec<UserLanguage>>,
pub allowed_langs: Vec<UserLanguage>,
}
#[derive(Deserialize)]