diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-09-30 22:13:07 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-09-30 22:13:07 +0200 |
| commit | a725d4c7d28fee701b6997cc46cffddefbcd26bf (patch) | |
| tree | 1e0899dc9fa67f8c74d7e4b7023881959d571d4f /src/lib/server/services/routine-actions.ts | |
| parent | a17b24b8e95bf85a8522fc0c2cbbdb8da31bf018 (diff) | |
Allow granular routine frequencies like 5/2w
Diffstat (limited to 'src/lib/server/services/routine-actions.ts')
| -rw-r--r-- | src/lib/server/services/routine-actions.ts | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/lib/server/services/routine-actions.ts b/src/lib/server/services/routine-actions.ts index 44ba2b8..1d7f8b5 100644 --- a/src/lib/server/services/routine-actions.ts +++ b/src/lib/server/services/routine-actions.ts @@ -1,7 +1,8 @@ import { fail, type ActionFailure } from '@sveltejs/kit'; import { archive, complete, edit, loadCurrent } from './routines'; -import { parseFormString, parseFrequencyDays } from './validation'; +import { parseFormString } from './validation'; import { instantFromDay } from '$lib/shared/temporal'; +import { Frequency } from '$lib/shared/frequency'; /** Shared routine edit/complete actions; rejects missing/archived routines. */ @@ -26,16 +27,20 @@ export async function editRoutineAction( return fail(400, { error: 'Le nom est requis' }); } - let frequencyDays: number; + let frequency: string; try { - frequencyDays = parseFrequencyDays(data.get('frequencyDays')); + frequency = Frequency.parse( + data.get('frequency')?.toString() ?? '', + ).toSpec(); } catch { return fail(400, { error: 'Fréquence invalide' }); } // Only touch description when the form sends one; list edits never wipe it. - const fields: { name: string; frequencyDays: number; description?: string } = - { name, frequencyDays }; + const fields: { name: string; frequency: string; description?: string } = { + name, + frequency, + }; const description = data.get('description'); if (description !== null) { fields.description = description.toString(); |
