vendor!
This commit is contained in:
37
vendor/github.com/thehowl/go-osuapi/mysql_date.go
generated
vendored
Normal file
37
vendor/github.com/thehowl/go-osuapi/mysql_date.go
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
package osuapi
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// MySQLDate is a wrapper for time.Time that can get a date from an osu! API JSON response.
|
||||
type MySQLDate time.Time
|
||||
|
||||
// UnmarshalJSON takes some JSON data and does some magic to transform it into a native time.Time.
|
||||
func (m *MySQLDate) UnmarshalJSON(data []byte) error {
|
||||
dataString := string(data)
|
||||
if dataString == "null" {
|
||||
m = nil
|
||||
return nil
|
||||
}
|
||||
inTimeLib, err := time.Parse(`"2006-01-02 15:04:05"`, dataString)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
*m = MySQLDate(inTimeLib)
|
||||
return nil
|
||||
}
|
||||
|
||||
// MarshalJSON converts a MySQLDate into JSON.
|
||||
func (m MySQLDate) MarshalJSON() ([]byte, error) {
|
||||
return []byte("\"" + m.String() + "\""), nil
|
||||
}
|
||||
|
||||
// GetTime transforms a MySQLDate into a native time.Time.
|
||||
func (m MySQLDate) GetTime() time.Time {
|
||||
return time.Time(m)
|
||||
}
|
||||
|
||||
func (m MySQLDate) String() string {
|
||||
return m.GetTime().Format("2006-01-02 15:04:05")
|
||||
}
|
Reference in New Issue
Block a user