feat(analytics): dashbaord creatge validation

This commit is contained in:
Shekar Siri 2024-12-16 11:51:19 +01:00
parent a88002852d
commit 0e00ca19ad
2 changed files with 15 additions and 7 deletions

View file

@ -3,6 +3,7 @@ package api
import (
"encoding/json"
"fmt"
"github.com/go-playground/validator/v10"
"github.com/gorilla/mux"
"net/http"
"openreplay/backend/pkg/analytics/api/models"
@ -31,12 +32,6 @@ func (e *handlersImpl) createDashboard(w http.ResponseWriter, r *http.Request) {
startTime := time.Now()
bodySize := 0
projectID, err := getIDFromRequest(r, "projectId")
if err != nil {
e.responser.ResponseWithError(e.log, r.Context(), w, http.StatusBadRequest, err, startTime, r.URL.Path, bodySize)
return
}
bodyBytes, err := api.ReadBody(e.log, w, r, e.jsonSizeLimit)
if err != nil {
e.responser.ResponseWithError(e.log, r.Context(), w, http.StatusRequestEntityTooLarge, err, startTime, r.URL.Path, bodySize)
@ -50,6 +45,19 @@ func (e *handlersImpl) createDashboard(w http.ResponseWriter, r *http.Request) {
return
}
validate := validator.New()
err = validate.Struct(req)
if err != nil {
e.responser.ResponseWithError(e.log, r.Context(), w, http.StatusBadRequest, err, startTime, r.URL.Path, bodySize)
return
}
projectID, err := getIDFromRequest(r, "projectId")
if err != nil {
e.responser.ResponseWithError(e.log, r.Context(), w, http.StatusBadRequest, err, startTime, r.URL.Path, bodySize)
return
}
currentUser := r.Context().Value("userData").(*user.User)
resp, err := e.service.CreateDashboard(projectID, currentUser.ID, req)

View file

@ -32,7 +32,7 @@ type GetDashboardsResponse struct {
// REQUESTS
type CreateDashboardRequest struct {
Name string `json:"name" validate:"required"`
Name string `json:"name" validate:"required,max=150"`
Description string `json:"description"`
IsPublic bool `json:"is_public"`
IsPinned bool `json:"is_pinned"`