accounts: implement json unmarshalling of url

This commit is contained in:
Martin Holst Swende 2018-02-22 12:40:27 +01:00
parent ec83d9d0ab
commit 69a96f8fef
No known key found for this signature in database
GPG key ID: 683B438C05A5DDF0

View file

@ -74,6 +74,22 @@ func (u URL) MarshalJSON() ([]byte, error) {
return json.Marshal(u.String())
}
// MarshalJSON parses url.
func (u *URL) UnmarshalJSON(input []byte) error {
var textUrl string
err := json.Unmarshal(input, &textUrl)
if err != nil {
return err
}
url, err := parseURL(textUrl)
if err != nil {
return err
}
u.Scheme = url.Scheme
u.Path = url.Path
return nil
}
// Cmp compares x and y and returns:
//
// -1 if x < y