Fixed a bug where a struct would have old values in it
This commit is contained in:
parent
a5552b8f9d
commit
bcbd415529
4 changed files with 8 additions and 20 deletions
|
@ -7,8 +7,4 @@ type CRUDable interface {
|
|||
ReadAll(*User) (interface{}, error)
|
||||
Update(int64) error
|
||||
Delete(int64) error
|
||||
|
||||
// This method is needed, because old values would otherwise remain in the struct.
|
||||
// TODO find a way of not needing an extra function
|
||||
Empty()
|
||||
}
|
||||
|
|
|
@ -84,15 +84,3 @@ func GetAllTeamsByNamespaceID(id int64) (teams []*Team, err error) {
|
|||
|
||||
return
|
||||
}
|
||||
|
||||
// Empty empties a struct. Because we heavily use pointers, the old values remain in the struct.
|
||||
// If you then update by not providing evrything, you have i.e. the old description still in the
|
||||
// newly created team, but you didn't provided one.
|
||||
func (t *Team) Empty() {
|
||||
t.ID = 0
|
||||
t.CreatedByID = 0
|
||||
t.CreatedBy = &User{}
|
||||
t.Name = ""
|
||||
t.Description = ""
|
||||
t.Members = []*User{}
|
||||
}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
package crud
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"git.kolaente.de/konrad/list/models"
|
||||
"github.com/labstack/echo"
|
||||
"net/http"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
// CreateWeb is the handler to create an object
|
||||
func (c *WebHandler) CreateWeb(ctx echo.Context) error {
|
||||
// Re-initialize our model
|
||||
c.CObject.Empty()
|
||||
p := reflect.ValueOf(c.CObject).Elem()
|
||||
p.Set(reflect.Zero(p.Type()))
|
||||
|
||||
// Get the object
|
||||
if err := ctx.Bind(&c.CObject); err != nil {
|
||||
|
@ -57,8 +58,6 @@ func (c *WebHandler) CreateWeb(ctx echo.Context) error {
|
|||
return echo.NewHTTPError(http.StatusNotFound, "The namespace name cannot be empty.")
|
||||
}
|
||||
|
||||
fmt.Println(err)
|
||||
|
||||
return echo.NewHTTPError(http.StatusInternalServerError)
|
||||
}
|
||||
|
||||
|
|
|
@ -4,10 +4,15 @@ import (
|
|||
"git.kolaente.de/konrad/list/models"
|
||||
"github.com/labstack/echo"
|
||||
"net/http"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
// UpdateWeb is the webhandler to update an object
|
||||
func (c *WebHandler) UpdateWeb(ctx echo.Context) error {
|
||||
// Re-initialize our model
|
||||
p := reflect.ValueOf(c.CObject).Elem()
|
||||
p.Set(reflect.Zero(p.Type()))
|
||||
|
||||
// Get the object
|
||||
if err := ctx.Bind(&c.CObject); err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, "No or invalid model provided.")
|
||||
|
|
Loading…
Reference in a new issue