| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package api
- import (
- "net/http"
- "encoding/json"
- "GoApi/internal/repository"
- )
- type DeleteEventsController struct {
- repo repository.EventRepository
- }
- func NewDeleteEventsController(repo repository.EventRepository) DeleteEventsController {
- return DeleteEventsController{repo: repo}
- }
- type DeleteEventsRequest struct {
- EventID int `json:"event_id"`
- }
- func (c *DeleteEventsController) DeleteEventHandler(w http.ResponseWriter, r *http.Request) {
- if r.Method != http.MethodPost {
- http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
- return
- }
- var req DeleteEventsRequest
- if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
- http.Error(w, "Invalid request body", http.StatusBadRequest)
- return
- }
- if req.EventID <= 0 {
- http.Error(w, "Event ID is required", http.StatusBadRequest)
- return
- }
- rows, err := c.repo.DeleteEvent(req.EventID)
- if err != nil {
- http.Error(w, "Failed to delete event: "+err.Error(), http.StatusInternalServerError)
- return
- }
- if rows == 0 {
- http.Error(w, "Event not found", http.StatusNotFound)
- return
- }
- w.Header().Set("Content-Type", "application/json")
- json.NewEncoder(w).Encode(map[string]interface{}{
- "deleted": rows,
- "message": "Event deleted successfully",
- })
- }
|