parcoursmob/servers/web/exports/agenda.go

47 lines
1.1 KiB
Go

package exports
import (
"net/http"
"github.com/gorilla/mux"
"github.com/rs/zerolog/log"
)
func (h *Handler) AllAgendaEvents(w http.ResponseWriter, r *http.Request) {
result, err := h.applicationHandler.ExportAllAgendaEvents()
if err != nil {
log.Error().Err(err).Msg("Failed to export all agenda events")
w.WriteHeader(http.StatusInternalServerError)
return
}
defer func() {
if err := result.ExcelFile.Close(); err != nil {
log.Error().Err(err).Msg("Failed to close Excel file")
}
}()
h.writeFileResponse(w, "Agenda_Events.xlsx")
result.ExcelFile.Write(w)
}
func (h *Handler) SingleAgendaEvent(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
eventID := vars["eventid"]
result, err := h.applicationHandler.ExportSingleAgendaEvent(eventID)
if err != nil {
log.Error().Err(err).Msg("Failed to export single agenda event")
w.WriteHeader(http.StatusInternalServerError)
return
}
defer func() {
if err := result.ExcelFile.Close(); err != nil {
log.Error().Err(err).Msg("Failed to close Excel file")
}
}()
h.writeFileResponse(w, "Event_"+eventID+".xlsx")
result.ExcelFile.Write(w)
}