File size: 1,226 Bytes
e762600
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package event

import (
	"strconv"

	"github.com/gin-gonic/gin"
	"godp.abdanhafidz.com/controller"
	"godp.abdanhafidz.com/models"
	"godp.abdanhafidz.com/repositories"
	"godp.abdanhafidz.com/services"
	"godp.abdanhafidz.com/utils"
)

func EventList(c *gin.Context) {
	limit, err := strconv.Atoi(c.DefaultQuery("limit", "10"))
	if err != nil {
		service := services.Service[any, any]{
			Exception: models.Exception{
				Message: "Invalid limit parameter",
			},
		}
		utils.SendResponse(c, service)
		return
	}

	offset, err := strconv.Atoi(c.DefaultQuery("offset", "0"))
	if err != nil {
		service := services.Service[any, any]{
			Exception: models.Exception{
				Message: "Invalid offset parameter",
			},
		}
		utils.SendResponse(c, service)
		return
	}
	filter := c.DefaultQuery("filter", "")
	filterBy := c.DefaultQuery("filter_by", "")

	pagination := repositories.PaginationConstructor{
		Limit:    limit,
		Offset:   offset,
		Filter:   filter,
		FilterBy: filterBy,
	}

	eventsService := services.GetAllEventService{}
	getAllEventController := controller.Controller[any, models.Events, []models.Events]{
		Service: &eventsService.Service,
	}

	eventsService.Retrieve(pagination)

	getAllEventController.Response(c)
}