Skip to content
Snippets Groups Projects
Commit e9fe4bf3 authored by Flnal's avatar Flnal
Browse files

added files

parent 388ff05f
No related branches found
No related tags found
1 merge request!3Master
package handler
import (
"encoding/json"
"net/http"
log "github.com/sirupsen/logrus"
"gitlab.reutlingen-university.de/albrecht/myaktion-go/src/myaktion/model"
"gitlab.reutlingen-university.de/albrecht/myaktion-go/src/myaktion/service"
)
func CreateCampaign(w http.ResponseWriter, r *http.Request) {
var campaign *model.Campaign
campaign, err := GetCampaign(r)
if err != nil {
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
}
sendJson(w, campaign)
}
func GetCampaigns(w http.ResponseWriter, _ *http.Request) {
campaigns, err := service.GetCampaigns()
if err != nil {
log.Printf("Error calling service GetCampaigns: %v", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
sendJson(w, campaigns)
}
func GetCampaign(r *http.Request) (*model.Campaign, error) {
var campaign model.Campaign
err := json.NewDecoder(r.Body).Decode(&campaign)
if err != nil {
log.Errorf("Can't serialize request body to campaign struct: %v", err)
return nil, err
}
return &campaign, nil
}
package handler
import (
"encoding/json"
"net/http"
"strconv"
"github.com/gorilla/mux"
log "github.com/sirupsen/logrus"
)
type result struct {
Success string `json:"success"`
}
func sendJson(w http.ResponseWriter, value interface{}) {
w.Header().Set("Content-Type", "application/json")
if err := json.NewEncoder(w).Encode(value); err != nil {
log.Errorf("Failure encoding value to JSON: %v", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
func getId(r *http.Request) (uint, error) {
vars := mux.Vars(r)
id, err := strconv.ParseUint(vars["id"], 10, 0)
if err != nil {
log.Errorf("Can't get ID from request: %v", err)
return 0, err
}
return uint(id), nil
}
package service
import (
"log"
"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 {
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
}
func GetCampaigns() ([]model.Campaign, error) {
var campaigns []model.Campaign
for _, campaign := range campaignStore {
campaigns = append(campaigns, *campaign)
}
log.Printf("Retrieved: %v", campaigns)
return campaigns, 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