Skip to content

Commit

Permalink
heat estimation change request supports multiple events
Browse files Browse the repository at this point in the history
  • Loading branch information
konrad2002 committed Oct 24, 2024
1 parent af1bba4 commit b65b9ca
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 10 deletions.
10 changes: 2 additions & 8 deletions controller/heat_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ func heatController() {

router.POST("/heat", addHeat)
router.POST("/heat/import", importHeat)
router.POST("/heat/meet/:meet_id/event/:event_id/start_estimation_date", updateHeatsStartEstimationDate)
router.POST("/heat/meet/:meet_id/events/start_estimation_date", updateHeatsStartEstimationDate)
router.POST("/heat/:id/time", updateHeatTime)

router.PUT("/heat", updateHeat)
Expand Down Expand Up @@ -315,19 +315,13 @@ func updateHeatsStartEstimationDate(c *gin.Context) {
return
}

event, err1 := strconv.Atoi(c.Param("event_id"))
if err1 != nil {
c.IndentedJSON(http.StatusBadRequest, gin.H{"message": "given event_id is not of type number"})
return
}

var request dto.HeatEstimationDateRequest
if err := c.BindJSON(&request); err != nil {
c.IndentedJSON(http.StatusInternalServerError, gin.H{"message": err.Error()})
return
}

info, err := service.UpdateHeatsEstimationDateByMeetingAndEvent(meeting, event, request.Time, request.UpdateTimeZone)
info, err := service.UpdateHeatsEstimationDateByMeetingAndEvent(meeting, request.Events, request.Time, request.UpdateTimeZone)
if err != nil {
c.IndentedJSON(http.StatusNotFound, gin.H{"message": err.Error()})
return
Expand Down
1 change: 1 addition & 0 deletions dto/heat_estimation_date_request.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ import "time"

type HeatEstimationDateRequest struct {
Time time.Time `json:"time"`
Events []int `json:"events"`
UpdateTimeZone bool `json:"update_time_zone"`
}
24 changes: 22 additions & 2 deletions service/heat_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,16 @@ func GetHeatsByMeetingAndEvent(id string, event int) ([]model.Heat, error) {
return getHeatsByBsonDocument(bson.D{{"meeting", id}, {"event", event}})
}

func GetHeatsByMeetingAndEvents(id string, events []int) ([]model.Heat, error) {
return getHeatsByBsonDocument(
bson.M{
"$and": []interface{}{
bson.M{"meeting": id},
bson.M{"event": bson.M{"$in": events}},
},
})
}

func GetHeatById(id primitive.ObjectID) (model.Heat, error) {
return getHeatByBsonDocument(bson.D{{"_id", id}})
}
Expand Down Expand Up @@ -450,8 +460,18 @@ func UpdateHeatTimes(id primitive.ObjectID, time time.Time, timeType string) (mo
return UpdateHeat(heat)
}

func UpdateHeatsEstimationDateByMeetingAndEvent(meeting string, event int, t time.Time, updateTimeZone bool) ([]model.Heat, error) {
heats, err := GetHeatsByMeetingAndEvent(meeting, event)
func UpdateHeatsEstimationDateByMeetingAndEvent(meeting string, events []int, t time.Time, updateTimeZone bool) ([]model.Heat, error) {
var heats []model.Heat
var err error
if len(events) <= 0 {
heats, err = GetHeatsByMeeting(meeting)
println("changing heat date and timezone for ALL events")
} else {
heats, err = GetHeatsByMeetingAndEvents(meeting, events)
println("changing heat date and timezone for events:")
println(events)
}

if err != nil {
return []model.Heat{}, err
}
Expand Down

0 comments on commit b65b9ca

Please sign in to comment.