Skip to content

Commit

Permalink
add weekly create handler
Browse files Browse the repository at this point in the history
  • Loading branch information
Dan Whitacre committed May 22, 2024
1 parent b6c1176 commit ccdb8ed
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 0 deletions.
25 changes: 25 additions & 0 deletions api/api/weekly.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,29 @@ func WeeklyHandler(w http.ResponseWriter, r *http.Request) {
logger.Info("Weekly found", "id", id)
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(weekly)
}

func CreateWeeklyHandler(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPut {
w.WriteHeader(http.StatusMethodNotAllowed)
return
}

var weekly domain.Weekly
jsonParser := json.NewDecoder(r.Body)
if err := jsonParser.Decode(&weekly); err != nil {
logger.Warn("Failed to parse weekly", "err", err)
w.WriteHeader(http.StatusBadRequest)
return
}

err := domain.WeeklyAdd(&weekly)
if err != nil {
logger.Warn("Failed to create weekly", "err", err)
w.WriteHeader(http.StatusBadRequest)
return
}

logger.Info("Created weekly", "id", weekly.WeeklyId)
w.WriteHeader(http.StatusCreated)
}
17 changes: 17 additions & 0 deletions api/domain/weekly.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,3 +117,20 @@ func WeeklyGet(weekly *Weekly) error {

return nil
}

func WeeklyAdd(weekly *Weekly) error {
if weekly.WeeklyId == "" {
return errors.New("WeeklyGet: missing weekly id, nothing to create")
}

_, err := db.Exec(
context.Background(),
`insert into weekly (WeeklyId) values ($1)`,
weekly.WeeklyId,
)
if err != nil {
return err
}

return nil
}
1 change: 1 addition & 0 deletions api/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ func main() {
http.HandleFunc("/api/player/{id}", api.PlayerHandler)
http.HandleFunc("/api/match/{id}", api.MatchHandler)
http.HandleFunc("/api/weekly/{id}", api.WeeklyHandler)
http.HandleFunc("/api/weekly", api.AdminMiddleware(api.CreateWeeklyHandler))
http.HandleFunc("/api/admin", api.AdminMiddleware(api.AdminHandler))

logger.Info("Server started")
Expand Down

0 comments on commit ccdb8ed

Please sign in to comment.