|
@@ -3,6 +3,7 @@ package controllers
|
|
|
import (
|
|
|
"net/http"
|
|
|
"strconv"
|
|
|
+ "time"
|
|
|
|
|
|
"github.com/gorilla/mux"
|
|
|
"github.com/gravitl/netmaker/db"
|
|
@@ -33,10 +34,33 @@ func listNetworkActivity(w http.ResponseWriter, r *http.Request) {
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
+ fromDateStr := r.URL.Query().Get("from_date")
|
|
|
+ toDateStr := r.URL.Query().Get("to_date")
|
|
|
+ var err error
|
|
|
+ var fromDate, toDate time.Time
|
|
|
+ if fromDateStr != "" && toDateStr != "" {
|
|
|
+ fromDate, err = time.Parse(time.RFC3339, fromDateStr)
|
|
|
+ if err != nil {
|
|
|
+ logic.ReturnErrorResponse(w, r, models.ErrorResponse{
|
|
|
+ Code: http.StatusBadRequest,
|
|
|
+ Message: err.Error(),
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ toDate, err = time.Parse(time.RFC3339, toDateStr)
|
|
|
+ if err != nil {
|
|
|
+ logic.ReturnErrorResponse(w, r, models.ErrorResponse{
|
|
|
+ Code: http.StatusBadRequest,
|
|
|
+ Message: err.Error(),
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
page, _ := strconv.Atoi(r.URL.Query().Get("page"))
|
|
|
pageSize, _ := strconv.Atoi(r.URL.Query().Get("per_page"))
|
|
|
ctx := db.WithContext(r.Context())
|
|
|
- netActivity, err := (&schema.Event{NetworkID: models.NetworkID(netID)}).ListByNetwork(db.SetPagination(ctx, page, pageSize))
|
|
|
+ netActivity, err := (&schema.Event{NetworkID: models.NetworkID(netID)}).ListByNetwork(db.SetPagination(ctx, page, pageSize), fromDate, toDate)
|
|
|
if err != nil {
|
|
|
logic.ReturnErrorResponse(w, r, models.ErrorResponse{
|
|
|
Code: http.StatusInternalServerError,
|
|
@@ -64,10 +88,32 @@ func listUserActivity(w http.ResponseWriter, r *http.Request) {
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
+ fromDateStr := r.URL.Query().Get("from_date")
|
|
|
+ toDateStr := r.URL.Query().Get("to_date")
|
|
|
+ var err error
|
|
|
+ var fromDate, toDate time.Time
|
|
|
+ if fromDateStr != "" && toDateStr != "" {
|
|
|
+ fromDate, err = time.Parse(time.RFC3339, fromDateStr)
|
|
|
+ if err != nil {
|
|
|
+ logic.ReturnErrorResponse(w, r, models.ErrorResponse{
|
|
|
+ Code: http.StatusBadRequest,
|
|
|
+ Message: err.Error(),
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ toDate, err = time.Parse(time.RFC3339, toDateStr)
|
|
|
+ if err != nil {
|
|
|
+ logic.ReturnErrorResponse(w, r, models.ErrorResponse{
|
|
|
+ Code: http.StatusBadRequest,
|
|
|
+ Message: err.Error(),
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
page, _ := strconv.Atoi(r.URL.Query().Get("page"))
|
|
|
pageSize, _ := strconv.Atoi(r.URL.Query().Get("per_page"))
|
|
|
ctx := db.WithContext(r.Context())
|
|
|
- userActivity, err := (&schema.Event{TriggeredBy: username}).ListByUser(db.SetPagination(ctx, page, pageSize))
|
|
|
+ userActivity, err := (&schema.Event{TriggeredBy: username}).ListByUser(db.SetPagination(ctx, page, pageSize), fromDate, toDate)
|
|
|
if err != nil {
|
|
|
logic.ReturnErrorResponse(w, r, models.ErrorResponse{
|
|
|
Code: http.StatusInternalServerError,
|
|
@@ -91,16 +137,37 @@ func listActivity(w http.ResponseWriter, r *http.Request) {
|
|
|
pageSize, _ := strconv.Atoi(r.URL.Query().Get("per_page"))
|
|
|
ctx := db.WithContext(r.Context())
|
|
|
var err error
|
|
|
+ fromDateStr := r.URL.Query().Get("from_date")
|
|
|
+ toDateStr := r.URL.Query().Get("to_date")
|
|
|
+ var fromDate, toDate time.Time
|
|
|
+ if fromDateStr != "" && toDateStr != "" {
|
|
|
+ fromDate, err = time.Parse(time.RFC3339, fromDateStr)
|
|
|
+ if err != nil {
|
|
|
+ logic.ReturnErrorResponse(w, r, models.ErrorResponse{
|
|
|
+ Code: http.StatusBadRequest,
|
|
|
+ Message: err.Error(),
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ toDate, err = time.Parse(time.RFC3339, toDateStr)
|
|
|
+ if err != nil {
|
|
|
+ logic.ReturnErrorResponse(w, r, models.ErrorResponse{
|
|
|
+ Code: http.StatusBadRequest,
|
|
|
+ Message: err.Error(),
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
var events []schema.Event
|
|
|
e := &schema.Event{TriggeredBy: username, NetworkID: models.NetworkID(network)}
|
|
|
if username != "" && network != "" {
|
|
|
- events, err = e.ListByUserAndNetwork(db.SetPagination(ctx, page, pageSize))
|
|
|
+ events, err = e.ListByUserAndNetwork(db.SetPagination(ctx, page, pageSize), fromDate, toDate)
|
|
|
} else if username != "" && network == "" {
|
|
|
- events, err = e.ListByUser(db.SetPagination(ctx, page, pageSize))
|
|
|
+ events, err = e.ListByUser(db.SetPagination(ctx, page, pageSize), fromDate, toDate)
|
|
|
} else if username == "" && network != "" {
|
|
|
- events, err = e.ListByNetwork(db.SetPagination(ctx, page, pageSize))
|
|
|
+ events, err = e.ListByNetwork(db.SetPagination(ctx, page, pageSize), fromDate, toDate)
|
|
|
} else {
|
|
|
- events, err = e.List(db.SetPagination(ctx, page, pageSize))
|
|
|
+ events, err = e.List(db.SetPagination(ctx, page, pageSize), fromDate, toDate)
|
|
|
}
|
|
|
if err != nil {
|
|
|
logic.ReturnErrorResponse(w, r, models.ErrorResponse{
|