Skip to content
Snippets Groups Projects
Commit cf5a3a64 authored by Sercan Yesildal's avatar Sercan Yesildal
Browse files

added db services

parent 673a05ea
No related branches found
No related tags found
No related merge requests found
package service
import (
"fmt"
log "github.com/sirupsen/logrus"
"gitlab.reutlingen-university.de/yesildas/myaktion-go/src/myaktion/db"
......@@ -31,14 +29,16 @@ func CreateCampaign(campaign *model.Campaign) error {
}
func GetCampaign(id uint) (*model.Campaign, error) {
if campaign, ok := campaignStore[id]; !ok {
log.Info("Campaign with ID %d not found.", id)
return nil, fmt.Errorf("campaign with id %d not found", id)
} else {
log.Infof("Successfully retrieved campaign with ID %v.", campaign.ID)
log.Tracef("Retrieved: ", *campaign)
return campaign, nil
var campaign model.Campaign
result := db.DB.Preload("Donations").First(&campaign, id)
if result.Error != nil {
log.Info("Campaign retrieving failed.")
return nil, result.Error
}
log.Infof("Successfully retrieved campaign with ID %v.", campaign.ID)
log.Tracef("Retrieved: ", campaign)
return &campaign, nil
}
func GetCampaigns() ([]model.Campaign, error) {
......@@ -54,25 +54,30 @@ func GetCampaigns() ([]model.Campaign, error) {
}
func UpdateCampaign(id uint, campaign *model.Campaign) (*model.Campaign, error) {
if storeCampaign, ok := campaignStore[id]; !ok {
log.Info("Campaign with ID %d not found.", id)
return nil, fmt.Errorf("campaign with id %d not found", id)
} else {
*storeCampaign = *campaign
storeCampaign.ID = id
log.Infof("Successfully updated campaign with ID %d.", id)
log.Tracef("Updated: %v", storeCampaign)
return storeCampaign, nil
var campaignData model.Campaign
result := db.DB.Preload("Donations").First(&campaignData, id)
if result.Error != nil {
log.Info("Campaign retrieving failed.")
return nil, result.Error
}
result = db.DB.Model(&campaignData).Updates(&campaign)
if result.Error != nil {
log.Info("Campaign updating failed.")
return nil, result.Error
}
log.Infof("Successfully updated campaign with ID %d.", id)
log.Tracef("Updated: %v", campaignData)
return &campaignData, nil
}
func DeleteCampaign(id uint) error {
if campaign, ok := campaignStore[id]; !ok {
log.Info("Campaign with ID %d not found.", id)
return fmt.Errorf("campaign with id %d not found", id)
} else {
delete(campaignStore, id)
log.Infof("Successfully deleted campaign with ID %v.", campaign.ID)
return nil
result := db.DB.Preload("Donations").Delete(&model.Campaign{}, id)
if result.Error != nil {
log.Info("Campaign delete failed.")
return result.Error
}
log.Infof("Successfully deleted campaign with ID %v.", id)
return nil
}
package service
import (
"fmt"
log "github.com/sirupsen/logrus"
"gitlab.reutlingen-university.de/yesildas/myaktion-go/src/myaktion/db"
"gitlab.reutlingen-university.de/yesildas/myaktion-go/src/myaktion/model"
)
func AddDonation(campaignId uint, donation *model.Donation) error {
campaign, err := GetCampaign(campaignId)
if err != nil {
log.Info("Campaign with ID %d not found.", campaignId)
return fmt.Errorf("campaign with id %d not found", campaignId)
}
if campaign.Donations == nil {
campaign.Donations = []model.Donation{}
donation.CampaignID = campaignId
result := db.DB.Create(donation)
if result.Error != nil {
log.Info("Donation creation failed.")
return result.Error
}
campaign.Donations = append(campaign.Donations, *donation)
log.Info("Successfully stored new donation")
log.Tracef("Stored: %v", donation)
return nil
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment