immich/mobile/openapi/lib
Timon 1fcc2b704b
feat(server)!: add isOwned filter to albums API (#28213)
* feat(server)!: add owned filter to albums API

BREAKING CHANGE: GET /albums with no parameters now returns all accessible albums (owned + shared-with-me) instead of only owned albums.

* document tri-state matrix

* web impl

* collapse to single method and handover branching to sql

* dedupe

* verify that owned, shared, and notShared counts are mapped independently from their respective queries

* refactor(server): add select:['id'] overload to albumRepository.getAll

Avoid fetching full album rows (with albumUsers/sharedLinks subqueries) in map.service where only album IDs are needed.

* focus relevant test filters

* fmt

* Revert "verify that owned, shared, and notShared counts are mapped independently from their respective queries"

This reverts commit 47aab458192c766de4662aada5a6841b091d2a80.

* sync sql

* Revert "document tri-state matrix"

This reverts commit a5b2355d0c6a084f2c021d517bf5ee80123d108c.

* address review comments

* inline shared condition and return as ternary

* sync sql

* use [...albums].sort

Array.toSorted() is not supported in Chrome 109

* use isShared and isOwned nomenclature

* fix e2e tests

* add params to sql query
2026-05-07 12:13:07 -04:00
..
api feat(server)!: add isOwned filter to albums API (#28213) 2026-05-07 12:13:07 -04:00
auth chore: Revert version v1.139.1 (#21125) 2025-08-21 17:15:11 -05:00
model chore!: duration in milliseconds (#28003) 2026-04-30 09:44:27 -04:00
api.dart chore!: duration in milliseconds (#28003) 2026-04-30 09:44:27 -04:00
api_client.dart chore!: duration in milliseconds (#28003) 2026-04-30 09:44:27 -04:00
api_exception.dart chore: Revert version v1.139.1 (#21125) 2025-08-21 17:15:11 -05:00
api_helper.dart refactor!: migrate class-validator to zod (#26597) 2026-04-14 23:39:03 +02:00