Skip to content
Snippets Groups Projects
Commit b5221df6 authored by Emanuel Petrinovic's avatar Emanuel Petrinovic
Browse files

halbwegs

parent 0b9d4fb5
No related branches found
No related tags found
No related merge requests found
......@@ -38,7 +38,7 @@ func UpdateCampaign(w http.ResponseWriter, r *http.Request) {
return
}
error := service.UpdateCampaign(campaign, id)
error := service.UpdateCampaign(getOrganizerName(r), campaign, id)
if error != nil {
http.Error(w, error.Error(), http.StatusInternalServerError)
return
......@@ -54,7 +54,7 @@ func GetCampaign(w http.ResponseWriter, r *http.Request) {
return
}
campaign, err := service.GetCampaign(id)
campaign, err := service.GetCampaign(getOrganizerName(r), id)
if err != nil {
log.Printf("Error calling service GetCampagin: %v", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
......@@ -83,7 +83,7 @@ func DeleteCampaign(w http.ResponseWriter, r *http.Request) {
return
}
var campaign model.Campaign
err = service.DeleteCampaign(&campaign, id)
err = service.DeleteCampaign(getOrganizerName(r), &campaign, id)
if err != nil {
log.Printf("Error calling service DeleteCampaign: %v", err)
......@@ -147,17 +147,11 @@ func PatchCampaign(w http.ResponseWriter, r *http.Request) {
return
}
err = service.PatchCampaign2(campaign, id)
/*m := make(map[string]any)
err = json.NewDecoder(r.Body).Decode(&m)
if err != nil {
log.Errorf("Can't serialize request body to donation struct: %v", err)
}
err = service.PatchCampaign(getOrganizerName(r), campaign, id)
err = service.PatchCampaign(&m, id)
if err != nil {
log.Errorf("cant patch stuff: %v", err)
}*/
log.Errorf("Error calling service PatchCampaign: %v", err)
}
}
......
......@@ -80,12 +80,15 @@ func main() {
router.HandleFunc("/health", handler.Health).Methods("GET")
router.HandleFunc("/campaigns", authMW(handler.CreateCampaign)).Methods("POST")
router.HandleFunc("/campaigns/{id}", handler.UpdateCampaign).Methods("PUT")
router.HandleFunc("/campaigns", authMW(handler.GetCampaigns)).Methods("GET")
router.HandleFunc("/campaigns/{id}", authMW(handler.GetCampaign)).Methods("GET")
router.HandleFunc("/campaigns", handler.GetCampaigns).Methods("GET")
router.HandleFunc("/campaigns/{id}", handler.DeleteCampaign).Methods("DELETE")
router.HandleFunc("/campaigns/{id}", handler.PatchCampaign).Methods("PATCH")
router.HandleFunc("/campaigns/{id}", authMW(handler.UpdateCampaign)).Methods("PUT")
router.HandleFunc("/campaigns/{id}", authMW(handler.PatchCampaign)).Methods("PATCH")
router.HandleFunc("/campaigns/{id}", authMW(handler.DeleteCampaign)).Methods("DELETE")
router.HandleFunc("/campaigns/{id}/donation", handler.AddDonation).Methods("POST")
if err := http.ListenAndServe(":8000", router); err != nil {
log.Fatal(err)
}
......
......@@ -30,10 +30,10 @@ func GetCampaigns(organizerName string) ([]model.Campaign, error) {
return campaigns, nil
}
func GetCampaign(id uint) (*model.Campaign, error) {
func GetCampaign(organizerName string, id uint) (*model.Campaign, error) {
var campaign *model.Campaign
result := db.DB.First(&campaign, id)
result := db.DB.Where("id = ? AND organizer_name = ?", id, organizerName).First(&campaign)
if result.Error != nil {
return nil, result.Error
......@@ -42,17 +42,17 @@ func GetCampaign(id uint) (*model.Campaign, error) {
return campaign, nil
}
func UpdateCampaign(campaign *model.Campaign, id uint) error {
result := db.DB.Model(&campaign).Where("id = ?", id).Updates(campaign)
func UpdateCampaign(organizerName string, campaign *model.Campaign, id uint) error {
result := db.DB.Model(&campaign).Where("id = ? AND organizer_name = ?", id, organizerName).Updates(campaign)
if result.Error != nil {
return result.Error
}
return nil
}
func DeleteCampaign(campaign *model.Campaign, id uint) error {
func DeleteCampaign(organizerName string, campaign *model.Campaign, id uint) error {
result := db.DB.Model(&campaign).Where("id = ?", id).Delete(campaign)
result := db.DB.Model(&campaign).Where("id = ? AND organizer_name = ?", id, organizerName).Delete(campaign)
if result.Error != nil {
return result.Error
......@@ -79,32 +79,9 @@ func AddDonation(donation *model.Donation, id uint) error {
return nil
}
func PatchCampaign(m *map[string]any, id uint) error {
/*var newM = make(map[string]any)
for field, value := range *m{
if (field == "Account"){
newM = value
}
}*/
result := db.DB.Model(model.Campaign{}).Where("id = ?", id).Updates(m)
/*for field, value := range *m {
result := db.DB.Model(model.Campaign{}).Where("id = ?", id).Select(field).Updates(map[string]interface{}{field: value})
if result.Error != nil {
return result.Error
}
}*/
func PatchCampaign(organizerName string, campaign *model.Campaign, id uint) error {
if result.Error != nil {
return result.Error
}
log.Infof("Successfully patched campaign.")
return nil
}
func PatchCampaign2(campaign *model.Campaign, id uint) error {
existingCampaign, error := GetCampaign(id)
existingCampaign, error := GetCampaign(organizerName, id)
if error != nil {
return error
}
......
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