mirror of https://github.com/synctv-org/synctv
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
179 lines
5.3 KiB
JSON
179 lines
5.3 KiB
JSON
{
|
|
"db_name": "PostgreSQL",
|
|
"query": "\n WITH updated_user AS (\n UPDATE users\n SET username = $2, role = $3,\n updated_at = $4, version = version + 1\n WHERE id = $1 AND deleted_at IS NULL AND version = $5\n RETURNING id, username, signup_method, role,\n avatar_file_reference_id,\n created_at, updated_at,\n version, deleted_at\n )\n SELECT p.id AS \"id!: UserId\",\n p.username AS \"username!\",\n p.signup_method AS \"signup_method!: SignupMethod\",\n p.role AS \"role!: UserRole\",\n p.avatar_file_reference_id,\n CASE\n WHEN active_ban.user_id IS NULL THEN 1::SMALLINT\n ELSE 2::SMALLINT\n END AS \"status!: UserStatus\",\n (active_ban.user_id IS NOT NULL) AS \"is_banned!\",\n active_ban.starts_at AS banned_at,\n active_ban.banned_by AS \"banned_by?: UserId\",\n active_ban.reason AS banned_reason,\n p.created_at AS \"created_at!\",\n p.updated_at AS \"updated_at!\",\n p.version AS \"version!\",\n p.deleted_at\n FROM updated_user p\n LEFT JOIN LATERAL (\n SELECT ub.user_id,\n ub.starts_at,\n ub.banned_by,\n ub.reason\n FROM user_bans ub\n WHERE ub.user_id = p.id\n AND ub.revoked_at IS NULL\n AND (ub.ends_at IS NULL OR ub.ends_at > CURRENT_TIMESTAMP)\n ORDER BY ub.starts_at DESC\n LIMIT 1\n ) active_ban ON TRUE\n ",
|
|
"describe": {
|
|
"columns": [
|
|
{
|
|
"ordinal": 0,
|
|
"name": "id!: UserId",
|
|
"type_info": "Int8",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "users",
|
|
"name": "id"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 1,
|
|
"name": "username!",
|
|
"type_info": "Varchar",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "users",
|
|
"name": "username"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 2,
|
|
"name": "signup_method!: SignupMethod",
|
|
"type_info": "Int2",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "users",
|
|
"name": "signup_method"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 3,
|
|
"name": "role!: UserRole",
|
|
"type_info": "Int2",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "users",
|
|
"name": "role"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 4,
|
|
"name": "avatar_file_reference_id",
|
|
"type_info": "Int8",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "users",
|
|
"name": "avatar_file_reference_id"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 5,
|
|
"name": "status!: UserStatus",
|
|
"type_info": "Int2",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 6,
|
|
"name": "is_banned!",
|
|
"type_info": "Bool",
|
|
"origin": "Expression"
|
|
},
|
|
{
|
|
"ordinal": 7,
|
|
"name": "banned_at",
|
|
"type_info": "Timestamptz",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "user_bans",
|
|
"name": "starts_at"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 8,
|
|
"name": "banned_by?: UserId",
|
|
"type_info": "Int8",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "user_bans",
|
|
"name": "banned_by"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 9,
|
|
"name": "banned_reason",
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "user_bans",
|
|
"name": "reason"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 10,
|
|
"name": "created_at!",
|
|
"type_info": "Timestamptz",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "users",
|
|
"name": "created_at"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 11,
|
|
"name": "updated_at!",
|
|
"type_info": "Timestamptz",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "users",
|
|
"name": "updated_at"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 12,
|
|
"name": "version!",
|
|
"type_info": "Int4",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "users",
|
|
"name": "version"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ordinal": 13,
|
|
"name": "deleted_at",
|
|
"type_info": "Timestamptz",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "users",
|
|
"name": "deleted_at"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"parameters": {
|
|
"Left": [
|
|
"Int8",
|
|
"Varchar",
|
|
"Int2",
|
|
"Timestamptz",
|
|
"Int4"
|
|
]
|
|
},
|
|
"nullable": [
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
true,
|
|
null,
|
|
null,
|
|
true,
|
|
true,
|
|
true,
|
|
false,
|
|
false,
|
|
false,
|
|
true
|
|
]
|
|
},
|
|
"hash": "bbb229cd05d1f7de10a7043ad155e7d62f0b4cd295cb8e001a5580d1a4967180"
|
|
}
|