1
0
mirror of https://github.com/immich-app/immich.git synced 2025-08-08 23:07:06 +02:00

fix(web): No EXIF info on stack navigation (#15533)

* fix(web): No EXIF info on stack navigation

* fix(web): No EXIF info on stack navigation

* add exif info to get stack query

* e2e test
This commit is contained in:
Alex
2025-01-23 09:22:27 -06:00
committed by GitHub
parent 1311189fab
commit afc6e91c66
3 changed files with 65 additions and 6 deletions

View File

@ -9,9 +9,18 @@ select
from
(
select
*
"assets".*,
to_json("exifInfo") as "exifInfo"
from
"assets"
inner join lateral (
select
"exif".*
from
"exif"
where
"exif"."assetId" = "assets"."id"
) as "exifInfo" on true
where
"assets"."deletedAt" is null
and "assets"."stackId" = "asset_stack"."id"
@ -31,7 +40,7 @@ select
from
(
select
*,
"assets".*,
(
select
coalesce(json_agg(agg), '[]')
@ -45,9 +54,18 @@ select
where
"tag_asset"."assetsId" = "assets"."id"
) as agg
) as "tags"
) as "tags",
to_json("exifInfo") as "exifInfo"
from
"assets"
inner join lateral (
select
"exif".*
from
"exif"
where
"exif"."assetId" = "assets"."id"
) as "exifInfo" on true
where
"assets"."deletedAt" is null
and "assets"."stackId" = "asset_stack"."id"
@ -67,7 +85,7 @@ select
from
(
select
*,
"assets".*,
(
select
coalesce(json_agg(agg), '[]')
@ -81,9 +99,18 @@ select
where
"tag_asset"."assetsId" = "assets"."id"
) as agg
) as "tags"
) as "tags",
to_json("exifInfo") as "exifInfo"
from
"assets"
inner join lateral (
select
"exif".*
from
"exif"
where
"exif"."assetId" = "assets"."id"
) as "exifInfo" on true
where
"assets"."deletedAt" is null
and "assets"."stackId" = "asset_stack"."id"

View File

@ -12,7 +12,11 @@ const withAssets = (eb: ExpressionBuilder<DB, 'asset_stack'>, withTags = false)
return jsonArrayFrom(
eb
.selectFrom('assets')
.selectAll()
.selectAll('assets')
.innerJoinLateral(
(eb) => eb.selectFrom('exif').selectAll('exif').whereRef('exif.assetId', '=', 'assets.id').as('exifInfo'),
(join) => join.onTrue(),
)
.$if(withTags, (eb) =>
eb.select((eb) =>
jsonArrayFrom(
@ -24,6 +28,7 @@ const withAssets = (eb: ExpressionBuilder<DB, 'asset_stack'>, withTags = false)
).as('tags'),
),
)
.select((eb) => eb.fn.toJson('exifInfo').as('exifInfo'))
.where('assets.deletedAt', 'is', null)
.whereRef('assets.stackId', '=', 'asset_stack.id'),
).as('assets');