From f71b9b78bcdb9f5801d64692e7baad7d6c75f864 Mon Sep 17 00:00:00 2001
From: Martin Schmollinger <martin.schmollinger@reutlingen-university.de>
Date: Sun, 7 May 2023 19:29:24 +0200
Subject: [PATCH] Implemented computation of amount donated so far after
 reading a campaign

---
 src/myaktion/model/campaign.go | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/myaktion/model/campaign.go b/src/myaktion/model/campaign.go
index 2aade1c..596d6c9 100644
--- a/src/myaktion/model/campaign.go
+++ b/src/myaktion/model/campaign.go
@@ -12,3 +12,13 @@ type Campaign struct {
 	AmountDonatedSoFar float64    `gorm:"-"`
 	Account            Account    `gorm:"embedded;embeddedPrefix:account_"`
 }
+
+func (c *Campaign) AfterFind(tx *gorm.DB) (err error) {
+	var sum float64
+	result := tx.Model(&Donation{}).Select("ifnull(sum(amount),0)").Where("campaign_id = ?", c.ID).Scan(&sum)
+	if result.Error != nil {
+		return result.Error
+	}
+	c.AmountDonatedSoFar = sum
+	return nil
+}
-- 
GitLab