mirror of
https://github.com/immich-app/immich.git
synced 2025-10-27 08:55:40 -04:00
* ignore non external assets in external libraries during syncUsage * only update storage usage if asset is from internal libraries * update storage usage on motion photo video asset creation * updated metadata service tests * added a test * simplified syncUsage condition * check for library type upload instead of not external * fixed broken sql --------- Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
172 lines
5.5 KiB
SQL
172 lines
5.5 KiB
SQL
-- NOTE: This file is auto generated by ./sql-generator
|
|
|
|
-- UserRepository.getAdmin
|
|
SELECT
|
|
"UserEntity"."id" AS "UserEntity_id",
|
|
"UserEntity"."name" AS "UserEntity_name",
|
|
"UserEntity"."avatarColor" AS "UserEntity_avatarColor",
|
|
"UserEntity"."isAdmin" AS "UserEntity_isAdmin",
|
|
"UserEntity"."email" AS "UserEntity_email",
|
|
"UserEntity"."storageLabel" AS "UserEntity_storageLabel",
|
|
"UserEntity"."oauthId" AS "UserEntity_oauthId",
|
|
"UserEntity"."profileImagePath" AS "UserEntity_profileImagePath",
|
|
"UserEntity"."shouldChangePassword" AS "UserEntity_shouldChangePassword",
|
|
"UserEntity"."createdAt" AS "UserEntity_createdAt",
|
|
"UserEntity"."deletedAt" AS "UserEntity_deletedAt",
|
|
"UserEntity"."status" AS "UserEntity_status",
|
|
"UserEntity"."updatedAt" AS "UserEntity_updatedAt",
|
|
"UserEntity"."memoriesEnabled" AS "UserEntity_memoriesEnabled",
|
|
"UserEntity"."quotaSizeInBytes" AS "UserEntity_quotaSizeInBytes",
|
|
"UserEntity"."quotaUsageInBytes" AS "UserEntity_quotaUsageInBytes"
|
|
FROM
|
|
"users" "UserEntity"
|
|
WHERE
|
|
((("UserEntity"."isAdmin" = $1)))
|
|
AND ("UserEntity"."deletedAt" IS NULL)
|
|
LIMIT
|
|
1
|
|
|
|
-- UserRepository.hasAdmin
|
|
SELECT
|
|
1 AS "row_exists"
|
|
FROM
|
|
(
|
|
SELECT
|
|
1 AS dummy_column
|
|
) "dummy_table"
|
|
WHERE
|
|
EXISTS (
|
|
SELECT
|
|
1
|
|
FROM
|
|
"users" "UserEntity"
|
|
WHERE
|
|
((("UserEntity"."isAdmin" = $1)))
|
|
AND ("UserEntity"."deletedAt" IS NULL)
|
|
)
|
|
LIMIT
|
|
1
|
|
|
|
-- UserRepository.getByEmail
|
|
SELECT
|
|
"user"."id" AS "user_id",
|
|
"user"."name" AS "user_name",
|
|
"user"."avatarColor" AS "user_avatarColor",
|
|
"user"."isAdmin" AS "user_isAdmin",
|
|
"user"."email" AS "user_email",
|
|
"user"."storageLabel" AS "user_storageLabel",
|
|
"user"."oauthId" AS "user_oauthId",
|
|
"user"."profileImagePath" AS "user_profileImagePath",
|
|
"user"."shouldChangePassword" AS "user_shouldChangePassword",
|
|
"user"."createdAt" AS "user_createdAt",
|
|
"user"."deletedAt" AS "user_deletedAt",
|
|
"user"."status" AS "user_status",
|
|
"user"."updatedAt" AS "user_updatedAt",
|
|
"user"."memoriesEnabled" AS "user_memoriesEnabled",
|
|
"user"."quotaSizeInBytes" AS "user_quotaSizeInBytes",
|
|
"user"."quotaUsageInBytes" AS "user_quotaUsageInBytes"
|
|
FROM
|
|
"users" "user"
|
|
WHERE
|
|
("user"."email" = $1)
|
|
AND ("user"."deletedAt" IS NULL)
|
|
|
|
-- UserRepository.getByStorageLabel
|
|
SELECT
|
|
"UserEntity"."id" AS "UserEntity_id",
|
|
"UserEntity"."name" AS "UserEntity_name",
|
|
"UserEntity"."avatarColor" AS "UserEntity_avatarColor",
|
|
"UserEntity"."isAdmin" AS "UserEntity_isAdmin",
|
|
"UserEntity"."email" AS "UserEntity_email",
|
|
"UserEntity"."storageLabel" AS "UserEntity_storageLabel",
|
|
"UserEntity"."oauthId" AS "UserEntity_oauthId",
|
|
"UserEntity"."profileImagePath" AS "UserEntity_profileImagePath",
|
|
"UserEntity"."shouldChangePassword" AS "UserEntity_shouldChangePassword",
|
|
"UserEntity"."createdAt" AS "UserEntity_createdAt",
|
|
"UserEntity"."deletedAt" AS "UserEntity_deletedAt",
|
|
"UserEntity"."status" AS "UserEntity_status",
|
|
"UserEntity"."updatedAt" AS "UserEntity_updatedAt",
|
|
"UserEntity"."memoriesEnabled" AS "UserEntity_memoriesEnabled",
|
|
"UserEntity"."quotaSizeInBytes" AS "UserEntity_quotaSizeInBytes",
|
|
"UserEntity"."quotaUsageInBytes" AS "UserEntity_quotaUsageInBytes"
|
|
FROM
|
|
"users" "UserEntity"
|
|
WHERE
|
|
((("UserEntity"."storageLabel" = $1)))
|
|
AND ("UserEntity"."deletedAt" IS NULL)
|
|
LIMIT
|
|
1
|
|
|
|
-- UserRepository.getByOAuthId
|
|
SELECT
|
|
"UserEntity"."id" AS "UserEntity_id",
|
|
"UserEntity"."name" AS "UserEntity_name",
|
|
"UserEntity"."avatarColor" AS "UserEntity_avatarColor",
|
|
"UserEntity"."isAdmin" AS "UserEntity_isAdmin",
|
|
"UserEntity"."email" AS "UserEntity_email",
|
|
"UserEntity"."storageLabel" AS "UserEntity_storageLabel",
|
|
"UserEntity"."oauthId" AS "UserEntity_oauthId",
|
|
"UserEntity"."profileImagePath" AS "UserEntity_profileImagePath",
|
|
"UserEntity"."shouldChangePassword" AS "UserEntity_shouldChangePassword",
|
|
"UserEntity"."createdAt" AS "UserEntity_createdAt",
|
|
"UserEntity"."deletedAt" AS "UserEntity_deletedAt",
|
|
"UserEntity"."status" AS "UserEntity_status",
|
|
"UserEntity"."updatedAt" AS "UserEntity_updatedAt",
|
|
"UserEntity"."memoriesEnabled" AS "UserEntity_memoriesEnabled",
|
|
"UserEntity"."quotaSizeInBytes" AS "UserEntity_quotaSizeInBytes",
|
|
"UserEntity"."quotaUsageInBytes" AS "UserEntity_quotaUsageInBytes"
|
|
FROM
|
|
"users" "UserEntity"
|
|
WHERE
|
|
((("UserEntity"."oauthId" = $1)))
|
|
AND ("UserEntity"."deletedAt" IS NULL)
|
|
LIMIT
|
|
1
|
|
|
|
-- UserRepository.getUserStats
|
|
SELECT
|
|
"users"."id" AS "userId",
|
|
"users"."name" AS "userName",
|
|
"users"."quotaSizeInBytes" AS "quotaSizeInBytes",
|
|
COUNT("assets"."id") FILTER (
|
|
WHERE
|
|
"assets"."type" = 'IMAGE'
|
|
AND "assets"."isVisible"
|
|
) AS "photos",
|
|
COUNT("assets"."id") FILTER (
|
|
WHERE
|
|
"assets"."type" = 'VIDEO'
|
|
AND "assets"."isVisible"
|
|
) AS "videos",
|
|
COALESCE(SUM("exif"."fileSizeInByte"), 0) AS "usage"
|
|
FROM
|
|
"users" "users"
|
|
LEFT JOIN "assets" "assets" ON "assets"."ownerId" = "users"."id"
|
|
AND ("assets"."deletedAt" IS NULL)
|
|
LEFT JOIN "exif" "exif" ON "exif"."assetId" = "assets"."id"
|
|
WHERE
|
|
"users"."deletedAt" IS NULL
|
|
GROUP BY
|
|
"users"."id"
|
|
ORDER BY
|
|
"users"."createdAt" ASC
|
|
|
|
-- UserRepository.syncUsage
|
|
UPDATE "users"
|
|
SET
|
|
"quotaUsageInBytes" = (
|
|
SELECT
|
|
COALESCE(SUM(exif."fileSizeInByte"), 0)
|
|
FROM
|
|
"assets" "assets"
|
|
LEFT JOIN "libraries" "library" ON "library"."id" = "assets"."libraryId"
|
|
AND ("library"."deletedAt" IS NULL)
|
|
LEFT JOIN "exif" "exif" ON "exif"."assetId" = "assets"."id"
|
|
WHERE
|
|
"assets"."ownerId" = users.id
|
|
AND "library"."type" = 'UPLOAD'
|
|
),
|
|
"updatedAt" = CURRENT_TIMESTAMP
|
|
WHERE
|
|
users.id = $1
|