diff --git a/src/myaktion/service/campaign.go b/src/myaktion/service/campaign.go index 901d8588d3dcaa4f4bb8bb25ec74d9585e968ace..58234e3117333060ac34bdc1d5a3b94c23789316 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 32c19a96ac4529762eed9bb038c8bba6122f7642..1bcbfee486ad145d264cb794188220fb56c7ceca 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 a2985c2068df9f178f6049560f3fbf1840fa77a8..72c773ab7be83cf7cd1f9c7cf5abe55114c5613b 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