From 6a254c09cffe6258d3da17d4e888e2d6c5f2f574 Mon Sep 17 00:00:00 2001 From: Tim Wundenberg Date: Fri, 16 May 2025 22:50:39 +0200 Subject: [PATCH] feat(transaction): #85 replace datetime with date --- handler/transaction.go | 13 ++++++------- main_test.go | 2 +- service/transaction.go | 12 ++---------- static/js/time.js | 7 +------ template/transaction/transaction.templ | 3 +-- types/transaction.go | 13 ++++++------- 6 files changed, 17 insertions(+), 33 deletions(-) diff --git a/handler/transaction.go b/handler/transaction.go index 53d07d8..99494a3 100644 --- a/handler/transaction.go +++ b/handler/transaction.go @@ -132,13 +132,12 @@ func (h TransactionImpl) handleUpdateTransaction() http.HandlerFunc { err error ) input := types.TransactionInput{ - Id: r.PathValue("id"), - AccountId: r.FormValue("account-id"), - TreasureChestId: r.FormValue("treasure-chest-id"), - Value: r.FormValue("value"), - Timestamp: r.FormValue("timestamp"), - TimezoneOffsetMinutes: r.FormValue("timezone-offset"), - Note: r.FormValue("note"), + Id: r.PathValue("id"), + AccountId: r.FormValue("account-id"), + TreasureChestId: r.FormValue("treasure-chest-id"), + Value: r.FormValue("value"), + Timestamp: r.FormValue("timestamp"), + Note: r.FormValue("note"), } if input.Id == "new" { diff --git a/main_test.go b/main_test.go index 77370f2..1a05b1b 100644 --- a/main_test.go +++ b/main_test.go @@ -911,7 +911,7 @@ func TestIntegrationAuth(t *testing.T) { assert.Equal(t, http.StatusOK, resp.StatusCode) formData = url.Values{ - "timestamp": {"2006-01-02T15:04"}, + "timestamp": {"2006-01-02"}, "value": {"100.00"}, "csrf-token": {csrfToken}, } diff --git a/service/transaction.go b/service/transaction.go index c85459a..0b462a0 100644 --- a/service/transaction.go +++ b/service/transaction.go @@ -440,20 +440,12 @@ func (s TransactionImpl) validateAndEnrichTransaction(oldTransaction *types.Tran } valueInt := int64(valueFloat * 100) - timestampTime, err := time.Parse("2006-01-02T15:04", input.Timestamp) + timestamp, err := time.Parse("2006-01-02", input.Timestamp) if err != nil { log.Error("transaction validate: %v", err) return nil, fmt.Errorf("could not parse timestamp: %w", ErrBadRequest) } - if input.TimezoneOffsetMinutes != "" { - timezoneOffsetMinutes, err := strconv.Atoi(input.TimezoneOffsetMinutes) - if err != nil { - return nil, fmt.Errorf("could not parse timezone offset: %w", ErrBadRequest) - } - timestampTime = timestampTime.Add(time.Duration(-1*timezoneOffsetMinutes) * time.Minute) - } - if input.Note != "" { err = validateString(input.Note, "note") if err != nil { @@ -468,7 +460,7 @@ func (s TransactionImpl) validateAndEnrichTransaction(oldTransaction *types.Tran AccountId: accountUuid, TreasureChestId: treasureChestUuid, Value: valueInt, - Timestamp: timestampTime, + Timestamp: timestamp, Note: input.Note, CreatedAt: createdAt, diff --git a/static/js/time.js b/static/js/time.js index fe0a8c6..3694bd8 100644 --- a/static/js/time.js +++ b/static/js/time.js @@ -9,17 +9,12 @@ document.addEventListener("DOMContentLoaded", () => { }) function updateTime(e) { - const timezoneOffset = - new Date().getTimezoneOffset(); - e.querySelectorAll("#timezone-offset").forEach((el) => { - el.value = timezoneOffset; - }); document.querySelectorAll(".datetime").forEach((el) => { if (el.textContent !== "") { - el.textContent = el.textContent.includes("UTC") ? new Date(el.textContent).toLocaleString([], { day: 'numeric', month: 'short', year: 'numeric', hour: '2-digit', minute: '2-digit' }) : el.textContent; + el.textContent = el.textContent.includes("UTC") ? new Date(el.textContent).toLocaleString([], { day: 'numeric', month: 'short', year: 'numeric' }) : el.textContent; } else if (el.attributes['value'] !== "") { const value = el.attributes['value'].value; const newDate = value.includes("UTC") ? new Date(value) : value; - newDate.setTime(newDate.getTime() + timezoneOffset * 60 * 1000); el.valueAsDate = newDate; } }) diff --git a/template/transaction/transaction.templ b/template/transaction/transaction.templ index 1e93f54..207f469 100644 --- a/template/transaction/transaction.templ +++ b/template/transaction/transaction.templ @@ -70,11 +70,10 @@ templ EditTransaction(transaction *types.Transaction, accounts []*types.Account, -