Fix
Some checks failed
Build docker image / Build-Docker-Image (push) Has been cancelled

This commit is contained in:
2024-12-26 02:31:07 +01:00
parent 7469fad5ad
commit f24a1dbec8
8 changed files with 275 additions and 193 deletions

View File

@@ -0,0 +1,85 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n user_settings.id,\n user_settings.user_id,\n user_settings.last_name,\n user_settings.first_name,\n user_settings.username,\n user_settings.source,\n COALESCE(\n ARRAY_AGG(ROW(\n languages.id,\n languages.label,\n languages.code\n )::user_language_type),\n ARRAY[]::user_language_type[]\n ) AS \"allowed_langs!: Vec<UserLanguage>\"\n FROM user_settings\n LEFT JOIN users_languages ON user_settings.id = users_languages.user\n LEFT JOIN languages ON users_languages.language = languages.id\n WHERE user_settings.id = $1\n GROUP BY user_settings.id\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int4"
},
{
"ordinal": 1,
"name": "user_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "last_name",
"type_info": "Varchar"
},
{
"ordinal": 3,
"name": "first_name",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "username",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "source",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "allowed_langs!: Vec<UserLanguage>",
"type_info": {
"Custom": {
"name": "user_language_type[]",
"kind": {
"Array": {
"Custom": {
"name": "user_language_type",
"kind": {
"Composite": [
[
"id",
"Int4"
],
[
"label",
"Varchar"
],
[
"code",
"Varchar"
]
]
}
}
}
}
}
}
}
],
"parameters": {
"Left": [
"Int4"
]
},
"nullable": [
false,
false,
false,
false,
false,
false,
null
]
},
"hash": "160ba7ba8bd514083af2a982dca1a0f1bc85e5b73d81a12b67d6c2b0d90e5740"
}

View File

@@ -0,0 +1,86 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n user_settings.id,\n user_settings.user_id,\n user_settings.last_name,\n user_settings.first_name,\n user_settings.username,\n user_settings.source,\n COALESCE(\n ARRAY_AGG(ROW(\n languages.id,\n languages.label,\n languages.code\n )::user_language_type),\n ARRAY[]::user_language_type[]\n ) AS \"allowed_langs!: Vec<UserLanguage>\"\n FROM user_settings\n LEFT JOIN users_languages ON user_settings.id = users_languages.user\n LEFT JOIN languages ON users_languages.language = languages.id\n GROUP BY user_settings.id\n ORDER BY user_settings.id ASC\n OFFSET $1\n LIMIT $2\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int4"
},
{
"ordinal": 1,
"name": "user_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "last_name",
"type_info": "Varchar"
},
{
"ordinal": 3,
"name": "first_name",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "username",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "source",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "allowed_langs!: Vec<UserLanguage>",
"type_info": {
"Custom": {
"name": "user_language_type[]",
"kind": {
"Array": {
"Custom": {
"name": "user_language_type",
"kind": {
"Composite": [
[
"id",
"Int4"
],
[
"label",
"Varchar"
],
[
"code",
"Varchar"
]
]
}
}
}
}
}
}
}
],
"parameters": {
"Left": [
"Int8",
"Int8"
]
},
"nullable": [
false,
false,
false,
false,
false,
false,
null
]
},
"hash": "30aefca980d6708fa760e7cb4196224c1c597c70e57ec71e6deb4556385d355d"
}

View File

@@ -1,59 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n user_settings.id,\n user_settings.user_id,\n user_settings.last_name,\n user_settings.first_name,\n user_settings.username,\n user_settings.source,\n COALESCE(\n JSON_AGG(JSON_BUILD_OBJECT(\n 'id', languages.id,\n 'label', languages.label,\n 'code', languages.code\n )),\n '[]'::JSON\n ) AS \"allowed_langs!: Vec<UserLanguage>\"\n FROM user_settings\n LEFT JOIN users_languages ON user_settings.id = users_languages.user\n LEFT JOIN languages ON users_languages.language = languages.id\n GROUP BY user_settings.id\n ORDER BY user_settings.id ASC\n OFFSET $1\n LIMIT $2\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int4"
},
{
"ordinal": 1,
"name": "user_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "last_name",
"type_info": "Varchar"
},
{
"ordinal": 3,
"name": "first_name",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "username",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "source",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "allowed_langs!: Vec<UserLanguage>",
"type_info": "Json"
}
],
"parameters": {
"Left": [
"Int8",
"Int8"
]
},
"nullable": [
false,
false,
false,
false,
false,
false,
null
]
},
"hash": "60a9a7320f1dc54783c6c02f0d56636865da20efa773cb3d9f2b78fb38416800"
}

View File

@@ -0,0 +1,85 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n user_settings.id,\n user_settings.user_id,\n user_settings.last_name,\n user_settings.first_name,\n user_settings.username,\n user_settings.source,\n COALESCE(\n ARRAY_AGG(ROW(\n languages.id,\n languages.label,\n languages.code\n )::user_language_type),\n ARRAY[]::user_language_type[]\n ) AS \"allowed_langs!: Vec<UserLanguage>\"\n FROM user_settings\n LEFT JOIN users_languages ON user_settings.id = users_languages.user\n LEFT JOIN languages ON users_languages.language = languages.id\n WHERE user_settings.user_id = $1\n GROUP BY user_settings.id\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int4"
},
{
"ordinal": 1,
"name": "user_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "last_name",
"type_info": "Varchar"
},
{
"ordinal": 3,
"name": "first_name",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "username",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "source",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "allowed_langs!: Vec<UserLanguage>",
"type_info": {
"Custom": {
"name": "user_language_type[]",
"kind": {
"Array": {
"Custom": {
"name": "user_language_type",
"kind": {
"Composite": [
[
"id",
"Int4"
],
[
"label",
"Varchar"
],
[
"code",
"Varchar"
]
]
}
}
}
}
}
}
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
false,
false,
false,
false,
false,
false,
null
]
},
"hash": "cc20029c1ac8cde73bd2a08d2a17740a08c54cf2af13fea288593a94343a71fe"
}

View File

@@ -1,58 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n user_settings.id,\n user_settings.user_id,\n user_settings.last_name,\n user_settings.first_name,\n user_settings.username,\n user_settings.source,\n COALESCE(\n JSON_AGG(JSON_BUILD_OBJECT(\n 'id', languages.id,\n 'label', languages.label,\n 'code', languages.code\n )),\n '[]'::JSON\n ) AS \"allowed_langs!: Vec<UserLanguage>\"\n FROM user_settings\n LEFT JOIN users_languages ON user_settings.id = users_languages.user\n LEFT JOIN languages ON users_languages.language = languages.id\n WHERE user_settings.id = $1\n GROUP BY user_settings.id\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int4"
},
{
"ordinal": 1,
"name": "user_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "last_name",
"type_info": "Varchar"
},
{
"ordinal": 3,
"name": "first_name",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "username",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "source",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "allowed_langs!: Vec<UserLanguage>",
"type_info": "Json"
}
],
"parameters": {
"Left": [
"Int4"
]
},
"nullable": [
false,
false,
false,
false,
false,
false,
null
]
},
"hash": "d798dbf83070efc88e92b05c2e879d2bc1327b1eadc6576063129e9b35340743"
}

View File

@@ -1,58 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n user_settings.id,\n user_settings.user_id,\n user_settings.last_name,\n user_settings.first_name,\n user_settings.username,\n user_settings.source,\n COALESCE(\n JSON_AGG(JSON_BUILD_OBJECT(\n 'id', languages.id,\n 'label', languages.label,\n 'code', languages.code\n )),\n '[]'::JSON\n ) AS \"allowed_langs!: Vec<UserLanguage>\"\n FROM user_settings\n LEFT JOIN users_languages ON user_settings.id = users_languages.user\n LEFT JOIN languages ON users_languages.language = languages.id\n WHERE user_settings.user_id = $1\n GROUP BY user_settings.id\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int4"
},
{
"ordinal": 1,
"name": "user_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "last_name",
"type_info": "Varchar"
},
{
"ordinal": 3,
"name": "first_name",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "username",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "source",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "allowed_langs!: Vec<UserLanguage>",
"type_info": "Json"
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
false,
false,
false,
false,
false,
false,
null
]
},
"hash": "e8525be82859dfef8591206896d88e268c502709b8f6f1a558ff9834d11e951b"
}

View File

@@ -39,12 +39,12 @@ async fn get_users(pagination: Query<Pagination>, db: Database) -> impl IntoResp
user_settings.username,
user_settings.source,
COALESCE(
JSON_AGG(JSON_BUILD_OBJECT(
'id', languages.id,
'label', languages.label,
'code', languages.code
)),
'[]'::JSON
ARRAY_AGG(ROW(
languages.id,
languages.label,
languages.code
)::user_language_type),
ARRAY[]::user_language_type[]
) AS "allowed_langs!: Vec<UserLanguage>"
FROM user_settings
LEFT JOIN users_languages ON user_settings.id = users_languages.user
@@ -76,12 +76,12 @@ async fn get_user(Path(user_id): Path<i64>, db: Database) -> impl IntoResponse {
user_settings.username,
user_settings.source,
COALESCE(
JSON_AGG(JSON_BUILD_OBJECT(
'id', languages.id,
'label', languages.label,
'code', languages.code
)),
'[]'::JSON
ARRAY_AGG(ROW(
languages.id,
languages.label,
languages.code
)::user_language_type),
ARRAY[]::user_language_type[]
) AS "allowed_langs!: Vec<UserLanguage>"
FROM user_settings
LEFT JOIN users_languages ON user_settings.id = users_languages.user
@@ -138,12 +138,12 @@ async fn create_or_update_user(
user_settings.username,
user_settings.source,
COALESCE(
JSON_AGG(JSON_BUILD_OBJECT(
'id', languages.id,
'label', languages.label,
'code', languages.code
)),
'[]'::JSON
ARRAY_AGG(ROW(
languages.id,
languages.label,
languages.code
)::user_language_type),
ARRAY[]::user_language_type[]
) AS "allowed_langs!: Vec<UserLanguage>"
FROM user_settings
LEFT JOIN users_languages ON user_settings.id = users_languages.user

View File

@@ -1,6 +1,7 @@
use serde::{Deserialize, Serialize};
#[derive(sqlx::FromRow, sqlx::Type, Serialize)]
#[sqlx(type_name = "user_language_type")]
pub struct UserLanguage {
pub id: i32,
pub label: String,