validate.go

 1// SPDX-FileCopyrightText: Amolith <amolith@secluded.site>
 2//
 3// SPDX-License-Identifier: AGPL-3.0-or-later
 4
 5// Package validate provides input validation helpers.
 6package validate
 7
 8import (
 9	"errors"
10	"fmt"
11
12	"github.com/google/uuid"
13)
14
15// ErrInvalidID indicates an ID is not a valid UUID.
16var ErrInvalidID = errors.New("invalid ID: expected UUID format")
17
18// ID validates that the given string is a valid Lunatask ID (UUID).
19func ID(id string) error {
20	if _, err := uuid.Parse(id); err != nil {
21		return fmt.Errorf("%w: %s", ErrInvalidID, id)
22	}
23
24	return nil
25}