netease_request.go 2.5 KB
package im

import (
	"fmt"
)

var (
	_ RequestParam = UserCreate{}
	_ RequestParam = UserUpdate{}
	_ RequestParam = UserRefreshToken{}
)

type BaseResp struct {
	Code int `json:"code"`
}

// TokenInfo 云通信Token
type TokenInfo struct {
	Token string `json:"token"`
	Accid string `json:"accid"`
	Name  string `json:"name"`
}
type UserTokenResult struct {
	BaseResp
	Info TokenInfo `json:"info"`
}

// 创建网易云通信ID
type UserCreate struct {
	Accid string //网易云通信ID,最大长度32字符
	Name  string //ID昵称,最大长度64字符。
	Props string //json属性,开发者可选填,最大长度1024字符
	Icon  string //ID头像URL,开发者可选填,最大长度1024字符
	/**
	云通信ID可以指定登录token值,最大长度128字符,
	并更新,如果未指定,会自动生成token,并在
	创建成功后返回
	**/
	Token  string
	Sign   string //签名
	Email  string
	Birth  string
	Mobile string
	Gender int    //0未知,1男,2女
	Ex     string //扩展字段
}

func (p UserCreate) Format() map[string]string {
	return map[string]string{
		"accid":  p.Accid,
		"name":   p.Name,
		"props":  p.Props,
		"icon":   p.Icon,
		"token":  p.Token,
		"sign":   p.Sign,
		"email":  p.Email,
		"birth":  p.Birth,
		"mobile": p.Mobile,
		"gender": fmt.Sprintf("%d", p.Gender),
		"ex":     p.Ex,
	}
}
func (p UserCreate) GetPath() string {
	return "/user/create.action"
}
func (p UserCreate) Valid() error {
	return nil
}

// 重置网易云通信token
type UserRefreshToken struct {
	Accid string //网易云通信ID,最大长度32字符,必须保证一个 APP内唯一
}

func (p UserRefreshToken) Format() map[string]string {
	return map[string]string{
		"accid": p.Accid,
	}
}
func (p UserRefreshToken) GetPath() string {
	return "/user/refreshToken.action"
}
func (p UserRefreshToken) Valid() error {
	return nil
}

// 更新网易云通信token
type UserUpdate struct {
	Accid  string
	Name   string //这边网易云要有昵称以手机号码为昵称
	Icon   string //icon默认头像
	Sign   string //签名
	Email  string
	Birth  string
	Mobile string
	Gender int    //0未知,1男,2女
	Ex     string //扩展字段
}

func (u UserUpdate) Format() map[string]string {
	return map[string]string{
		"accid":  u.Accid,
		"name":   u.Name,
		"icon":   u.Icon,
		"sign":   u.Sign,
		"email":  u.Email,
		"birth":  u.Birth,
		"mobile": u.Mobile,
		"gender": fmt.Sprintf("%d", u.Gender),
		"ex":     u.Ex,
	}
}
func (u UserUpdate) GetPath() string {
	return "/user/refreshToken.action"
}
func (u UserUpdate) Valid() error {
	return nil
}