Add depot, attendant, jetfire, optimus, ota services with kustomize overlays
This commit is contained in:
53
services/ota_update_go/controllers/mongo_handle_update.go
Normal file
53
services/ota_update_go/controllers/mongo_handle_update.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/fiskerinc/cloud-services/pkg/logger"
|
||||
"github.com/fiskerinc/cloud-services/pkg/utils"
|
||||
"github.com/fiskerinc/cloud-services/pkg/loggerdataresp"
|
||||
)
|
||||
|
||||
func NewMongoUpdate(helper MongoUpdateHelperInterface) *MongoHandleUpdate {
|
||||
return &MongoHandleUpdate{Helper: helper}
|
||||
}
|
||||
|
||||
type MongoUpdateHelperInterface interface {
|
||||
ParseUpdateURLParams(r *http.Request) interface{}
|
||||
ValidateFields(model interface{}) error
|
||||
NewModel() interface{}
|
||||
ParseRequestBody(r *http.Request, model interface{}) error
|
||||
QueryUpdate(filter interface{}, model interface{}) error
|
||||
}
|
||||
|
||||
type MongoHandleUpdate struct {
|
||||
Helper MongoUpdateHelperInterface
|
||||
}
|
||||
|
||||
func (h *MongoHandleUpdate) Handle(w http.ResponseWriter, r *http.Request) {
|
||||
filter := h.Helper.ParseUpdateURLParams(r)
|
||||
err := h.Helper.ValidateFields(filter)
|
||||
if loggerdataresp.BadDataErrorResp(w, err, http.StatusBadRequest) {
|
||||
return
|
||||
}
|
||||
|
||||
model := h.Helper.NewModel()
|
||||
err = h.Helper.ParseRequestBody(r, model)
|
||||
if loggerdataresp.BadDataErrorResp(w, err, http.StatusBadRequest) {
|
||||
return
|
||||
}
|
||||
err = h.Helper.ValidateFields(model)
|
||||
if loggerdataresp.BadDataErrorResp(w, err, http.StatusBadRequest) {
|
||||
logger.Warn().Err(err).Send()
|
||||
return
|
||||
}
|
||||
|
||||
err = h.Helper.QueryUpdate(filter, model)
|
||||
if loggerdataresp.BadDataErrorResp(w, err, http.StatusBadRequest, loggerdataresp.MongoUpdateErrorCheck) {
|
||||
return
|
||||
}
|
||||
|
||||
logger.Info().Msgf("%+v", model)
|
||||
|
||||
utils.RespJSON(w, http.StatusOK, model)
|
||||
}
|
||||
Reference in New Issue
Block a user