2022-12-04 17:09:25 +00:00
|
|
|
package natsio
|
|
|
|
|
2023-01-03 08:22:57 +00:00
|
|
|
import (
|
|
|
|
"errors"
|
|
|
|
|
|
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
|
|
)
|
2022-12-04 17:09:25 +00:00
|
|
|
|
2022-12-21 04:38:29 +00:00
|
|
|
//
|
|
|
|
// Common
|
|
|
|
//
|
|
|
|
|
|
|
|
type IDAndName struct {
|
|
|
|
ID string `json:"_id"`
|
|
|
|
Name string `json:"name"`
|
|
|
|
}
|
|
|
|
|
2022-12-18 03:56:37 +00:00
|
|
|
//
|
|
|
|
// USER
|
|
|
|
//
|
|
|
|
|
|
|
|
type User struct {
|
|
|
|
ID primitive.ObjectID `json:"_id"`
|
|
|
|
Name string `json:"name"`
|
2022-12-18 03:56:55 +00:00
|
|
|
Type string `json:"type"`
|
2022-12-18 03:56:37 +00:00
|
|
|
Avatar *FilePhoto `json:"avatar"`
|
|
|
|
}
|
|
|
|
|
2023-01-03 08:22:57 +00:00
|
|
|
func ParseUser(user User, result interface{}) (err error) {
|
|
|
|
b := InterfaceToBytes(user)
|
|
|
|
if len(b) > 0 {
|
|
|
|
err = json.Unmarshal(b, &result)
|
|
|
|
} else {
|
|
|
|
err = errors.New("[natsio.ParseUser] cannot read data")
|
|
|
|
}
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2022-12-18 03:56:37 +00:00
|
|
|
//
|
|
|
|
// FILE PHOTO
|
|
|
|
//
|
|
|
|
|
2022-12-04 17:09:25 +00:00
|
|
|
type FilePhoto struct {
|
|
|
|
ID primitive.ObjectID `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"`
|
|
|
|
}
|
2023-01-03 08:22:57 +00:00
|
|
|
|
|
|
|
func ParsePhoto(photo FilePhoto, result interface{}) (err error) {
|
|
|
|
b := InterfaceToBytes(photo)
|
|
|
|
if len(b) > 0 {
|
|
|
|
err = json.Unmarshal(b, &result)
|
|
|
|
} else {
|
|
|
|
err = errors.New("[natsio.ParsePhoto] cannot read data")
|
|
|
|
}
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|