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

campaign handler and service for campaign creation added

parent 7d3ac45f
No related branches found
No related tags found
No related merge requests found
package handler
import (
"encoding/json"
"log"
"net/http"
"gitlab.reutlingen-university.de/yesildas/myaktion-go/src/myaktion/model"
"gitlab.reutlingen-university.de/yesildas/myaktion-go/src/myaktion/service"
)
func CreateCampaign(w http.ResponseWriter, r *http.Request) {
var campaign model.Campaign
err := json.NewDecoder(r.Body).Decode(&campaign)
if err != nil {
log.Printf("Can't serialize request body to campaign struct: %v", err)
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
if err := service.CreateCampaign(&campaign); err != nil {
log.Printf("Error calling service CreateCampaign: %v", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Set("Content-Type", "application/json")
if err := json.NewEncoder(w).Encode(campaign); err != nil {
log.Printf("Failure encoding value to JSON: %v", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
......@@ -40,6 +40,7 @@ func main() {
log.Printf("Starting MyAktion API server on port %v.\n", port)
router := mux.NewRouter()
router.HandleFunc("/health", handler.Health).Methods("GET")
router.HandleFunc("/campaign", handler.CreateCampaign).Methods("POST")
if err := http.ListenAndServe(fmt.Sprintf(":%v", port), router); err != nil {
log.Fatal(err)
}
......
package model
type Campaign struct {
ID uint `json:"id"`
Name string `json:"name"`
OrganizerName string `json:"organizerName"`
TargetAmount float64 `json:"targetAmount"`
......
package service
import (
"log"
"gitlab.reutlingen-university.de/yesildas/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 {
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)
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