Files
assetx/webapp-back/users/serializers.go

67 lines
1.5 KiB
Go
Raw Normal View History

package users
import (
"github.com/gin-gonic/gin"
"github.com/gothinkster/golang-gin-realworld-example-app/common"
)
type ProfileSerializer struct {
C *gin.Context
UserModel
}
// Declare your response schema here
type ProfileResponse struct {
ID uint `json:"-"`
Username string `json:"username"`
Bio string `json:"bio"`
Image string `json:"image"`
Following bool `json:"following"`
}
// Put your response logic including wrap the userModel here.
func (self *ProfileSerializer) Response() ProfileResponse {
myUserModel := self.C.MustGet("my_user_model").(UserModel)
image := ""
if self.Image != nil {
image = *self.Image
}
profile := ProfileResponse{
ID: self.ID,
Username: self.Username,
Bio: self.Bio,
Image: image,
Following: myUserModel.isFollowing(self.UserModel),
}
return profile
}
type UserSerializer struct {
c *gin.Context
}
type UserResponse struct {
Username string `json:"username"`
Email string `json:"email"`
Bio string `json:"bio"`
Image string `json:"image"`
Token string `json:"token"`
}
func (self *UserSerializer) Response() UserResponse {
myUserModel := self.c.MustGet("my_user_model").(UserModel)
image := ""
if myUserModel.Image != nil {
image = *myUserModel.Image
}
user := UserResponse{
Username: myUserModel.Username,
Email: myUserModel.Email,
Bio: myUserModel.Bio,
Image: image,
Token: common.GenToken(myUserModel.ID),
}
return user
}