Quellcode durchsuchen

add filters to all events api

abhishek9686 vor 4 Monaten
Ursprung
Commit
044d744c9d
2 geänderte Dateien mit 19 neuen und 1 gelöschten Zeilen
  1. 13 1
      pro/controllers/events.go
  2. 6 0
      schema/event.go

+ 13 - 1
pro/controllers/events.go

@@ -85,10 +85,22 @@ func listUserActivity(w http.ResponseWriter, r *http.Request) {
 // @Success     200 {object}  models.ReturnSuccessResponseWithJson
 // @Failure     500 {object} models.ErrorResponse
 func listActivity(w http.ResponseWriter, r *http.Request) {
+	username := r.URL.Query().Get("username")
+	network := r.URL.Query().Get("network_id")
 	page, _ := strconv.Atoi(r.URL.Query().Get("page"))
 	pageSize, _ := strconv.Atoi(r.URL.Query().Get("per_page"))
 	ctx := db.WithContext(r.Context())
-	events, err := (&schema.Event{}).List(db.SetPagination(ctx, page, pageSize))
+	var err error
+	var events []schema.Event
+	if username != "" && network != "" {
+		events, err = (&schema.Event{}).ListByUserAndNetwork(db.SetPagination(ctx, page, pageSize))
+	} else if username != "" && network == "" {
+		events, err = (&schema.Event{}).ListByUser(db.SetPagination(ctx, page, pageSize))
+	} else if username == "" && network != "" {
+		events, err = (&schema.Event{}).ListByNetwork(db.SetPagination(ctx, page, pageSize))
+	} else {
+		events, err = (&schema.Event{}).List(db.SetPagination(ctx, page, pageSize))
+	}
 	if err != nil {
 		logic.ReturnErrorResponse(w, r, models.ErrorResponse{
 			Code:    http.StatusInternalServerError,

+ 6 - 0
schema/event.go

@@ -42,6 +42,12 @@ func (a *Event) ListByUser(ctx context.Context) (ats []Event, err error) {
 	return
 }
 
+func (a *Event) ListByUserAndNetwork(ctx context.Context) (ats []Event, err error) {
+	err = db.FromContext(ctx).Model(&Event{}).Where("network_id = ? AND triggered_by = ?",
+		a.NetworkID, a.TriggeredBy).Order("time_stamp DESC").Find(&ats).Error
+	return
+}
+
 func (a *Event) List(ctx context.Context) (ats []Event, err error) {
 	err = db.FromContext(ctx).Model(&Event{}).Order("time_stamp DESC").Find(&ats).Error
 	return