diff --git a/internal/data/movies.go b/internal/data/movies.go index f1b042c..040175c 100644 --- a/internal/data/movies.go +++ b/internal/data/movies.go @@ -7,7 +7,7 @@ type Movie struct { CreatedAt time.Time `json:"-"` Title string `json:"title"` Year int32 `json:"year,omitempty"` - Runtime int32 `json:"runtime,omitempty,string"` + Runtime Runtime `json:"runtime,omitempty"` Genres []string `json:"genres,omitempty"` Version int32 `json:"version"` } diff --git a/internal/data/runtime.go b/internal/data/runtime.go new file mode 100644 index 0000000..85295bb --- /dev/null +++ b/internal/data/runtime.go @@ -0,0 +1,15 @@ +package data + +import ( + "fmt" + "strconv" +) + +type Runtime int32 + +func (r Runtime) MarshalJSON() ([]byte, error) { + jsonValue := fmt.Sprintf("%d mins", r) + + quotedJSONValue := strconv.Quote(jsonValue) + return []byte(quotedJSONValue), nil +}