github.com/872409/go-netease-im@v1.0.2-0.20201109080841-fdb3e13691c5/team.go (about)

     1  package netease
     2  
     3  import (
     4  	"errors"
     5  	"strconv"
     6  
     7  	jsoniter "github.com/json-iterator/go"
     8  )
     9  
    10  //
    11  func (c *ImClient) TeamCreate(tname string, owner string, members []string, announcement string) (string, error) {
    12  	b, _ := jsoniter.Marshal(members)
    13  	membersStr := string(b)
    14  	param := map[string]string{"tname": tname, "owner": owner, "members": membersStr, "announcement": announcement, "magree": "1", "joinmode": "0", "msg": ""}
    15  	infoJSON, err := c.post(teamCreate, param, "tid")
    16  	var result string
    17  	err = jsoniter.Unmarshal(*infoJSON, result)
    18  
    19  	return result, err
    20  }
    21  
    22  //
    23  func (c *ImClient) TeamQuery(tids []string, isWidthMembers bool, ignoreInvalid bool) ([]TeamDetail, error) {
    24  	b, _ := jsoniter.Marshal(tids)
    25  	tidsStr := string(b)
    26  
    27  	var ope string
    28  	if isWidthMembers {
    29  		ope = "1"
    30  	} else {
    31  		ope = "0"
    32  	}
    33  
    34  	param := map[string]string{"tids": tidsStr, "ope": ope, "ignoreInvalid": strconv.FormatBool(ignoreInvalid)}
    35  	infoJSON, err := c.post(teamQuery, param, "tinfos")
    36  	if err != nil || infoJSON == nil {
    37  		return nil, err
    38  	}
    39  
    40  	var result = &[]TeamDetail{}
    41  	err = jsoniter.Unmarshal(*infoJSON, result)
    42  	if err != nil {
    43  		return nil, err
    44  	}
    45  
    46  	return *result, nil
    47  }
    48  
    49  //
    50  // func (c *ImClient) SetFriend(accid string, faccid string, alias string, ex string, serverex string) error {
    51  // 	param := map[string]string{"accid": accid, "faccid": faccid, "alias": alias, "ex": ex, "serverex": serverex}
    52  // 	_, err := c.post(friendUpdate, param, "info")
    53  // 	return err
    54  // }
    55  
    56  func (c *ImClient) GetJoinTeams(accid string) (*[]Team, error) {
    57  	if len(accid) == 0 {
    58  		return nil, errors.New("必须指定网易云通信ID")
    59  	}
    60  
    61  	param := map[string]string{"accid": accid}
    62  
    63  	infoJSON, err := c.post(teamJoinGet, param, "infos")
    64  
    65  	if err != nil || infoJSON == nil {
    66  		return nil, err
    67  	}
    68  
    69  	var result = &[]Team{}
    70  	err = jsoniter.Unmarshal(*infoJSON, result)
    71  	if err != nil {
    72  		return nil, err
    73  	}
    74  
    75  	return result, nil
    76  }