diff --git a/src/myaktion/service/campaign.go b/src/myaktion/service/campaign.go index 33632a8c58f6e3468742c33c58443ee37926fb1c..6205e87afc7b0f73b52d0fc9f7f1ab8e7571199e 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 }