[BUGFIX] data json sql
This commit is contained in:
parent
e7b365df5e
commit
cd2f10b54d
|
@ -5,7 +5,9 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
)
|
)
|
||||||
|
|
||||||
type JsonNullInt64 sql.NullInt64
|
type JsonNullInt64 struct {
|
||||||
|
sql.NullInt64
|
||||||
|
}
|
||||||
|
|
||||||
func (v JsonNullInt64) MarshalJSON() ([]byte, error) {
|
func (v JsonNullInt64) MarshalJSON() ([]byte, error) {
|
||||||
if v.Valid {
|
if v.Valid {
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
package data
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSQL(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
a := JsonNullInt64{}
|
||||||
|
a.Scan(300)
|
||||||
|
|
||||||
|
assert.Equal(int64(300), a.Int64)
|
||||||
|
|
||||||
|
a.UnmarshalJSON([]byte{'2', '3'})
|
||||||
|
assert.Equal(int64(23), a.Int64)
|
||||||
|
|
||||||
|
err := a.UnmarshalJSON([]byte{})
|
||||||
|
assert.Error(err)
|
||||||
|
a.UnmarshalJSON([]byte{'n', 'u', 'l', 'l'})
|
||||||
|
assert.False(a.Valid)
|
||||||
|
|
||||||
|
value, _ := a.MarshalJSON()
|
||||||
|
assert.Equal([]byte{'n', 'u', 'l', 'l'}, value)
|
||||||
|
|
||||||
|
a.UnmarshalJSON([]byte{'1', '4'})
|
||||||
|
value, _ = a.MarshalJSON()
|
||||||
|
assert.Equal([]byte{'1', '4'}, value)
|
||||||
|
}
|
|
@ -30,7 +30,8 @@ func blogpostAdd(w http.ResponseWriter, r *http.Request) {
|
||||||
blogpost.BlogID = blog.ID
|
blogpost.BlogID = blog.ID
|
||||||
|
|
||||||
if blogpost.Preview != nil {
|
if blogpost.Preview != nil {
|
||||||
blogpost.PreviewID = data.JsonNullInt64{Int64: blogpost.Preview.ID, Valid: true}
|
blogpost.PreviewID = data.JsonNullInt64{}
|
||||||
|
blogpost.PreviewID.Scan(blogpost.Preview.ID)
|
||||||
blogpost.Preview = nil
|
blogpost.Preview = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,7 +72,8 @@ func blogpostEdit(w http.ResponseWriter, r *http.Request) {
|
||||||
blogpost.ID = blogpostid
|
blogpost.ID = blogpostid
|
||||||
|
|
||||||
if blogpost.Preview != nil {
|
if blogpost.Preview != nil {
|
||||||
blogpost.PreviewID = data.JsonNullInt64{Int64: blogpost.Preview.ID, Valid: true}
|
blogpost.PreviewID = data.JsonNullInt64{}
|
||||||
|
blogpost.PreviewID.Scan(blogpost.Preview.ID)
|
||||||
blogpost.Preview = nil
|
blogpost.Preview = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,8 @@ func menuAdd(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
menuEntry.WebsiteID = ctx.Value("websiteid").(int64)
|
menuEntry.WebsiteID = ctx.Value("websiteid").(int64)
|
||||||
if menuEntry.URL != nil {
|
if menuEntry.URL != nil {
|
||||||
menuEntry.URLID = data.JsonNullInt64{Int64: menuEntry.URL.ID, Valid: true}
|
menuEntry.URLID = data.JsonNullInt64{}
|
||||||
|
menuEntry.URLID.Scan(menuEntry.URL.ID)
|
||||||
menuEntry.URL = nil
|
menuEntry.URL = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,7 +78,8 @@ func menuEdit(w http.ResponseWriter, r *http.Request) {
|
||||||
menuEntry.ID = menuid
|
menuEntry.ID = menuid
|
||||||
|
|
||||||
if menuEntry.URL != nil {
|
if menuEntry.URL != nil {
|
||||||
menuEntry.URLID = data.JsonNullInt64{Int64: menuEntry.URL.ID, Valid: true}
|
menuEntry.URLID = data.JsonNullInt64{}
|
||||||
|
menuEntry.URLID.Scan(menuEntry.URL.ID)
|
||||||
menuEntry.URL = nil
|
menuEntry.URL = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue