diff --git a/internal/api/handler/list.go b/internal/api/handler/list.go index 179b164..7354a07 100644 --- a/internal/api/handler/list.go +++ b/internal/api/handler/list.go @@ -3,7 +3,6 @@ package handler import ( "log/slog" "net/http" - "slices" "github.com/robindittmar/dttmr-api/internal/api/request" "github.com/robindittmar/dttmr-api/internal/api/response" @@ -47,12 +46,7 @@ func (h *ListHandler) CreateList(w http.ResponseWriter, r *http.Request) { return } - // TODO: should this be in ListService? - if !slices.Contains(payload.UserIDs, authContext.UserID) { - payload.UserIDs = append(payload.UserIDs, authContext.UserID) - } - - list, err := h.ListService.Create(ctx, payload.Name, payload.UserIDs) + list, err := h.ListService.Create(ctx, authContext.UserID, payload.Name, payload.UserIDs) if err != nil { slog.ErrorContext(ctx, "failed to create list", slog.Any("error", err)) response.Error(ctx, w, http.StatusInternalServerError, "failed to create list") diff --git a/internal/domain/list.go b/internal/domain/list.go index 59f5d36..c3275d1 100644 --- a/internal/domain/list.go +++ b/internal/domain/list.go @@ -3,6 +3,7 @@ package domain import ( "context" "errors" + "slices" "time" ) @@ -48,6 +49,10 @@ func (s *ListService) Create(ctx context.Context, authUserID string, name string return nil, errors.New("list name must not be empty") } + if !slices.Contains(userIDs, authUserID) { + userIDs = append(userIDs, authUserID) + } + return s.repo.CreateList(ctx, name, userIDs) }