mirror of
https://github.com/sipeed/NanoKVM.git
synced 2026-09-11 00:22:56 -05:00
* Add ability to properly configure logrus (e.x. specify output file) * Make the code slightly more ideomatic (sort imports, etc) * Replace some of the shell calls with equivalent native code * Fix update process * Improve error handling (handle 2 previously unhandled errors) * Add locking for HID operations and make a HID-operations struct a singleton
50 lines
1.0 KiB
Go
50 lines
1.0 KiB
Go
package proto
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/go-playground/validator/v10"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
var env = os.Getenv(gin.EnvGinMode)
|
|
|
|
// ValidateRequest Validates request parameters.
|
|
func ValidateRequest(req interface{}) error {
|
|
validate := validator.New()
|
|
|
|
if err := validate.Struct(req); err != nil {
|
|
log.Errorf("validate request failed, err: %s", err)
|
|
return err
|
|
}
|
|
|
|
if env == "" || env == "debug" {
|
|
log.Debugf("request: %+v\n", req)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// ParseQueryRequest Validates GET requests.
|
|
func ParseQueryRequest(c *gin.Context, req interface{}) error {
|
|
var err error
|
|
if err = c.ShouldBindQuery(req); err != nil {
|
|
log.Errorf("parse request failed, err: %s", err)
|
|
return err
|
|
}
|
|
|
|
return ValidateRequest(req)
|
|
}
|
|
|
|
// ParseFormRequest Validates POST Requests.
|
|
func ParseFormRequest(c *gin.Context, req interface{}) error {
|
|
var err error
|
|
if err = c.ShouldBind(req); err != nil {
|
|
log.Errorf("parse request failed, err: %s", err)
|
|
return err
|
|
}
|
|
|
|
return ValidateRequest(req)
|
|
}
|