From 35ec0e5e779b29094f1a2ea931133eda36966b1e Mon Sep 17 00:00:00 2001
From: Martin Schmollinger <martin.schmollinger@reutlingen-university.de>
Date: Sun, 7 May 2023 19:19:44 +0200
Subject: [PATCH] Updated first two service methods using database

---
 src/myaktion/service/campaign.go | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/myaktion/service/campaign.go b/src/myaktion/service/campaign.go
index 33632a8..6205e87 100644
--- a/src/myaktion/service/campaign.go
+++ b/src/myaktion/service/campaign.go
@@ -5,6 +5,7 @@ import (
 
 	log "github.com/sirupsen/logrus"
 
+	"gitlab.reutlingen-university.de/go-exercises/myaktion-go/src/myaktion/db"
 	"gitlab.reutlingen-university.de/go-exercises/myaktion-go/src/myaktion/model"
 )
 
@@ -18,19 +19,22 @@ func init() {
 }
 
 func CreateCampaign(campaign *model.Campaign) error {
-	campaign.ID = actCampaignId
-	campaignStore[actCampaignId] = campaign
-	actCampaignId += 1
-	log.Printf("Successfully stored new campaign with ID %v in database.", campaign.ID)
-	log.Printf("Stored: %v", campaign)
+	result := db.DB.Create(campaign)
+	if result.Error != nil {
+		return result.Error
+	}
+	log.Infof("Successfully stored new campaign with ID %v in database.", campaign.ID)
+	log.Tracef("Stored: %v", campaign)
 	return nil
 }
 
 func GetCampaigns() ([]model.Campaign, error) {
 	var campaigns []model.Campaign
-	for _, campaign := range campaignStore {
-		campaigns = append(campaigns, *campaign)
+	result := db.DB.Preload("Donations").Find(&campaigns)
+	if result.Error != nil {
+		return nil, result.Error
 	}
+	log.Tracef("Retrieved: %v", campaigns)
 	return campaigns, nil
 }
 
-- 
GitLab