69 lines
1.1 KiB
Go
69 lines
1.1 KiB
Go
|
package natsio
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
)
|
||
|
|
||
|
//
|
||
|
// Common
|
||
|
//
|
||
|
|
||
|
type IDAndName struct {
|
||
|
ID string `json:"_id"`
|
||
|
Name string `json:"name"`
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// USER
|
||
|
//
|
||
|
|
||
|
type User struct {
|
||
|
ID string `json:"_id"`
|
||
|
Name string `json:"name"`
|
||
|
Type string `json:"type"`
|
||
|
Avatar *FilePhoto `json:"avatar"`
|
||
|
}
|
||
|
|
||
|
func ParseToUser(data interface{}, result *User) (err error) {
|
||
|
b := InterfaceToBytes(data)
|
||
|
if len(b) > 0 {
|
||
|
err = json.Unmarshal(b, result)
|
||
|
} else {
|
||
|
err = errors.New("[natsio.ParseUser] cannot read data")
|
||
|
}
|
||
|
|
||
|
return
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// FILE PHOTO
|
||
|
//
|
||
|
|
||
|
type FilePhoto struct {
|
||
|
ID string `json:"_id"`
|
||
|
Name string `json:"name"`
|
||
|
Dimensions *FileDimensions `json:"dimensions"`
|
||
|
}
|
||
|
|
||
|
type FileSize struct {
|
||
|
Width int `json:"width"`
|
||
|
Height int `json:"height"`
|
||
|
URL string `json:"url,omitempty"`
|
||
|
}
|
||
|
|
||
|
type FileDimensions struct {
|
||
|
Small *FileSize `json:"sm"`
|
||
|
Medium *FileSize `json:"md"`
|
||
|
}
|
||
|
|
||
|
func ParseToPhoto(data interface{}, result *FilePhoto) (err error) {
|
||
|
b := InterfaceToBytes(data)
|
||
|
if len(b) > 0 {
|
||
|
err = json.Unmarshal(b, result)
|
||
|
} else {
|
||
|
err = errors.New("[natsio.ParsePhoto] cannot read data")
|
||
|
}
|
||
|
|
||
|
return
|
||
|
}
|