jubnl
3e37474a2c
test(server): plan 4 — constructor ripple for the rosterUserIds/getPlaceWithTags inline
...
Hand-built BudgetService/BudgetMcp/TodoService call sites drop the removed
DatabaseService constructor arg (budgetRepoArgs() now appends a
TripMembersRepository so most spread call sites need no other change);
budget.service.test.ts's rosterHas() helper and svc() factory move from a
spied DatabaseService to a stubbed TripMembersRepository. The
AccommodationsService helper (tests/helpers/accommodations-service.ts) and
its two direct callers drop the same arg. PackingService call sites are
untouched (its new param is optional, so every existing hand-built instance
still resolves rosterUserIds through the DatabaseService fallback).
2026-09-24 06:18:32 +02:00
jubnl
652aa568e4
refactor(server): plan 4 — trek-photos.repository.ts finishes its rename
...
3e Task 6 renamed the CLASS (TrekPhotosRepository -> TrekPhotoRegistrationService,
since the name collided with the generated ORM TrekPhotos.repository.ts) but
left the FILE and its test file's names unchanged. Renames both to
trek-photo-registration.service.ts / .test.ts.
The old path is kept as a thin re-export stub (the src/websocket.ts shape)
rather than repointed at every one of its ~20 importers in this pass: several
of those files sit in two sibling tasks' exclusively-owned windows on this
shared branch (Task 3's budget/packing/todo/accommodations/places ripple,
reached through tests/helpers/plugin-host.ts and mcp-test-controllers.ts;
Task 5c's held-back tests/unit/services/{trekPhotoMedia,conflictUpdate}.test.ts)
and are off limits here. Flagged for a follow-up once those tasks land: delete
the stub and repoint every remaining importer at ./trek-photo-registration.service.
2026-09-24 06:13:33 +02:00
jubnl
d499b4505f
refactor(server): plan 4 — retire the safely-convertible string-form where conditions (rule 23)
...
Places.repository.ts's existsInTrip/findInTrip/findRaw/reclaimInputs/
listByTripAndIds and Trips.repository.ts's findPublicForShare all took a
raw `.where('col = ?', [v])` string condition even though their id/trip_id
parameters were already plain `number` (or, for findPublicForShare,
narrowed to `number` here after confirming its one caller,
share.service.ts#getSharedTripData, only ever passes a number sourced
from a Kysely-typed share_tokens row, never an unconverted URL param) —
converted all six to MikroORM's typed `.where({...})` filter object.
The remaining raw string-form conditions in src/db/repositories/** are
NOT converted here: they are the `number | string` raw-bind seam
findAccessible/isOwner's own docstrings describe (trip_id/id threaded
through unconverted from req.params), which structurally requires the
deferred guard-level single toRowId parse to land first — narrowing any
of those methods' signatures now would either break the '0x10'/'007' id
parity those docstrings warn about, or duplicate the deferred item's own
work ahead of it landing.
2026-09-24 06:10:33 +02:00
jubnl
51327e75c0
refactor(server): plan 4 — inline canAccessTrip/isOwner off DatabaseService (trip-domain services)
2026-09-24 05:47:21 +02:00
jubnl
88fa13d55a
refactor(server): plan 4 — convert the program's orphaned raw-SQL callers
2026-09-24 04:59:54 +02:00
jubnl
6ff45be032
test(server): plan 4 — collapse nest service test harnesses onto the ORM snapshot
2026-09-24 04:47:29 +02:00
jubnl
b6de35a2ce
refactor(plugins): contribution-hook controllers, the small plugin controllers and the plugins-table survivors through repositories
2026-09-24 03:53:44 +02:00
jubnl
2ba5534c65
fix(server): plan 3i close-out — DemoModule imported where its service is consumed (e2e restored); admin addons list selects the provider relation; saveDemoBaseline awaited; backup tests on the maintenance repository
2026-09-24 02:58:37 +02:00
jubnl
f337f116d9
fix(server): plan 3h close-out — new-value-wins COALESCE restores stay/reservation propagation; doc-sync state filter truthiness; request-context and parity ratchets for share, doc-sync and the integrations
2026-09-24 02:39:30 +02:00
jubnl
915ab84faf
refactor(demo,backup): seed and reset through DemoRepository, live-connection backup statements through MaintenanceRepository, isDemoUserId through an injected DemoService
2026-09-24 02:04:32 +02:00
jubnl
240c7ed2a9
test(admin): pin createUser's pre-existing non-transactional uniqueness-check race (AD2-4)
2026-09-24 01:47:38 +02:00
jubnl
862799062a
refactor(admin): user CRUD, stats, audit log, version check and addon config through repositories
2026-09-24 01:46:09 +02:00
jubnl
425d889983
refactor(share): public share links, the pre-init photo fallback, and collection-places survivors through repositories
2026-09-24 01:24:21 +02:00
jubnl
36e178c085
refactor(storage): backend/category config and usage stats through AppSettingsRepository; fix the seed-file test race and the shared-replica migration-flip gap
2026-09-24 01:20:46 +02:00
jubnl
a5665b5d2d
fix(server): plan 3g close-out — transactional book first-save, skeleton reconcile and share-link create; unknown-key entry patches are no-ops again; parity and authorization pins for the journey repositories
2026-09-24 00:49:55 +02:00
jubnl
8bcfd92142
refactor(doc-sync): connections, reconciler and controller-SQL relocation through repositories
2026-09-24 00:40:23 +02:00
jubnl
182744e416
refactor(integrations,booking-import,airports,maps,route-usage): airtrail, booking import, airport backfill, maps cache and route-usage counters through repositories
2026-09-24 00:39:08 +02:00
jubnl
d79f4cc605
refactor(collections): saved places, copy-to-trip, labels and invitations through repositories
2026-09-24 00:11:01 +02:00
jubnl
1d72c6909b
refactor(integrations): dawarich connection, sync, tracks and review-flow through repositories
2026-09-23 23:55:52 +02:00
jubnl
3a4646a7bb
refactor(server): journey-table survivors in trips, photos, memories, auth-cleanup and plugin-contributions through repositories
2026-09-23 23:37:01 +02:00
jubnl
992f9ae4a7
refactor(collections): access model, hydration, export/import and list CRUD through repositories
2026-09-23 23:29:15 +02:00
jubnl
407e50c295
refactor(journey): public share links, TREK Studio books and the journal facades through repositories
2026-09-23 23:09:13 +02:00
jubnl
24ad08a014
refactor(journey): journey stats, entries, photos, contributors and suggestions through repositories
2026-09-23 23:05:59 +02:00
jubnl
353edd7a48
fix(server): plan 3f close-out — ntfy operator-scope test on the live send path; vacay date-offset and shift-order parity; todo reminder window; coverage and parity ratchets for the atlas and vacay repositories
2026-09-23 22:58:03 +02:00
jubnl
6486159289
refactor(journey): journey and trip access control, CRUD and the trip-sync engine through repositories
2026-09-23 22:29:55 +02:00
jubnl
847a538509
refactor(atlas): visited countries, regions and bucket list through repositories
2026-09-23 21:40:36 +02:00
jubnl
2f1bb2597e
refactor(system-notices): notice dismissals through a Nest provider and repository
2026-09-23 21:30:44 +02:00
jubnl
8b94a5a03e
refactor(vacay): vacation plans, entries, shares and holiday calendars through repositories
2026-09-23 21:13:35 +02:00
jubnl
66b7e6440d
fix(server): plan 3e close-out — repository registrations restore the boot; packing assignee and bag updates parse and no-op as legacy; coverage and scoping ratchets for the budget, packing and collab repositories
2026-09-23 21:02:35 +02:00
jubnl
c6687b2574
refactor(notifications): reminder crons, mailer, ntfy and webhook transports through repositories
2026-09-23 20:59:07 +02:00
jubnl
4258f05926
refactor(notifications): in-app notifications and channel preferences through repositories
2026-09-23 20:33:07 +02:00
jubnl
f47a7d4568
refactor(school-holidays): country and region catalog through repositories
2026-09-23 20:30:29 +02:00
jubnl
3a039d5b19
refactor(packing): packing items, bags and templates through repositories
2026-09-23 19:40:08 +02:00
jubnl
0c5843f00e
refactor(todo): todo items through repositories
2026-09-23 19:32:26 +02:00
jubnl
c7c2018cda
refactor(budget): budget items, members, payers and settlements through repositories
2026-09-23 19:14:57 +02:00
jubnl
d7aba126cd
refactor(collab): notes, polls, messages and links through repositories
2026-09-23 18:58:15 +02:00
jubnl
bceaf4b134
refactor(memories): unified, immich and synology photo sync through repositories
2026-09-23 18:38:36 +02:00
jubnl
5453836a06
test(server): plan 3e — hand-built FilesService, FilesRpc and AllowedFileTypesService calls follow the repository constructors
2026-09-23 18:27:37 +02:00
jubnl
399ca58a7d
refactor(files): trip files and file links through repositories, with transactions added
2026-09-23 18:22:02 +02:00
jubnl
db2db7f5a3
refactor(photos): trek photos, memories access and cache sweeps through repositories
2026-09-23 17:58:20 +02:00
jubnl
6b4c124a38
fix(server): plan 3d close-out — legacy text shape for stored accommodation ids restores the date-change restamp; reservation ids parsed once at the gate; parity tests for the reservation repositories
2026-09-23 17:44:48 +02:00
jubnl
6102929e8d
refactor(calendar): calendar reads and reservation visibility through one predicate
2026-09-23 16:38:47 +02:00
jubnl
47d17d3820
refactor(trips): trip copy through repositories for the roadtrip, accommodation and reservation tables
2026-09-23 16:19:19 +02:00
jubnl
2aeecd98fa
refactor(accommodations): stays through repositories inside the existing transactions
2026-09-23 15:57:51 +02:00
jubnl
26233434f6
refactor(feeds): ICS feed tokens and anonymous feeds through repositories
2026-09-23 15:12:13 +02:00
jubnl
7ee0403eaf
refactor(reservations): reservations, endpoints and travelers through repositories
2026-09-23 14:58:36 +02:00
jubnl
3a26d03b00
refactor(roadtrip): roadtrip tables through repositories
2026-09-23 14:44:10 +02:00
jubnl
93324e71c4
feat(server): plan 3d groundwork — dialect helpers, visibility predicate, feed and cron context ratchets
2026-09-23 13:52:38 +02:00
jubnl
4ceb94613f
fix(server): plan 3c close-out — days create/insert answer the guard 404 for non-canonical trip ids instead of 500; exact settlement and cross-request yield ratchets
2026-09-23 13:31:26 +02:00
jubnl
eaa027750a
test(server): plan 3c close-out — copy-source full-row parity, Kysely rollback proofs, identity-map relabels, trips e2e on the snapshot DB
2026-09-23 12:55:20 +02:00