From fd19050550777d7678a130f2a575807a603e1f39 Mon Sep 17 00:00:00 2001 From: Flnal <74874325+Flnal@users.noreply.github.com> Date: Mon, 8 May 2023 13:42:11 +0200 Subject: [PATCH] =?UTF-8?q?restliche=20Funktionen=20bzgl=20DB=20ver=C3=A4n?= =?UTF-8?q?dert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/myaktion/service/campaign.go | 24 ++++++++---------------- src/myaktion/service/donation.go | 2 ++ tests.txt | 2 +- 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/myaktion/service/campaign.go b/src/myaktion/service/campaign.go index 901d858..58234e3 100644 --- a/src/myaktion/service/campaign.go +++ b/src/myaktion/service/campaign.go @@ -1,23 +1,12 @@ package service import ( - "fmt" - log "github.com/sirupsen/logrus" "gitlab.reutlingen-university.de/albrecht/myaktion-go/src/myaktion/db" "gitlab.reutlingen-university.de/albrecht/myaktion-go/src/myaktion/model" ) -var ( - campaignStore map[uint]*model.Campaign - actCampaignId uint = 1 -) - -func init() { - campaignStore = make(map[uint]*model.Campaign) -} - func CreateCampaign(campaign *model.Campaign) error { result := db.DB.Create(campaign) if result.Error != nil { @@ -40,12 +29,13 @@ func GetCampaigns() ([]model.Campaign, error) { } func GetCampaign(id uint) (*model.Campaign, error) { - campaign := campaignStore[id] - if campaign == nil { - return nil, fmt.Errorf("no campaign with ID %d", id) + var campaign model.Campaign + result := db.DB.Preload("Donations").First(&campaign, id) + if result.Error != nil { + return nil, result.Error } log.Tracef("Retrieved: %v", campaign) - return campaign, nil + return &campaign, nil } func UpdateCampaign(id uint, campaign *model.Campaign) (*model.Campaign, error) { @@ -57,6 +47,7 @@ func UpdateCampaign(id uint, campaign *model.Campaign) (*model.Campaign, error) existingCampaign.OrganizerName = campaign.OrganizerName existingCampaign.TargetAmount = campaign.TargetAmount existingCampaign.DonationMinimum = campaign.DonationMinimum + db.DB.Save(&existingCampaign) entry := log.WithField("ID", id) entry.Info("Successfully updated campaign.") entry.Tracef("Updated: %v", campaign) @@ -68,7 +59,8 @@ func DeleteCampaign(id uint) (*model.Campaign, error) { if err != nil { return campaign, err } - delete(campaignStore, id) + db.DB.Delete(&campaign, id) + entry := log.WithField("ID", id) entry.Info("Successfully deleted campaign.") entry.Tracef("Deleted: %v", campaign) diff --git a/src/myaktion/service/donation.go b/src/myaktion/service/donation.go index 32c19a9..1bcbfee 100644 --- a/src/myaktion/service/donation.go +++ b/src/myaktion/service/donation.go @@ -3,6 +3,7 @@ package service import ( log "github.com/sirupsen/logrus" + "gitlab.reutlingen-university.de/albrecht/myaktion-go/src/myaktion/db" "gitlab.reutlingen-university.de/albrecht/myaktion-go/src/myaktion/model" ) @@ -12,6 +13,7 @@ func AddDonation(campaignId uint, donation *model.Donation) error { return err } campaign.Donations = append(campaign.Donations, *donation) + db.DB.Save(&campaign) entry := log.WithField("ID", campaignId) entry.Info("Successfully added new donation to campaign.") entry.Tracef("Stored: %v", donation) diff --git a/tests.txt b/tests.txt index a2985c2..72c773a 100644 --- a/tests.txt +++ b/tests.txt @@ -15,4 +15,4 @@ curl -X DELETE localhost:8000/campaigns/1 curl -X PUT -H "Content-Type: application/json" -d '{"name":"new Name","organizerName":"Thomas","donationMinimum":2,"targetAmount":100,"account":{"name":"Martin","bankName":"DKB","number":"123456"}}' localhost:8000/campaigns/1 # AddDonation -curs -H "Content-Type: application/json" -d '{"amount": 12.23,"DonorName":"Stefan","ReceiptRequested":false}' \ No newline at end of file +curl -H "Content-Type: application/json" -d '{"CampaignID":1,"amount":12.23,"DonorName":"Stefan","ReceiptRequested":false,"Status":"TRANSFERRED"}' \ No newline at end of file -- GitLab