You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
957 B
45 lines
957 B
package deliver |
|
|
|
import ( |
|
"context" |
|
"google.golang.org/grpc" |
|
"sonet/api/gen/postal" |
|
"sonet/pkg/utils/logger" |
|
) |
|
|
|
type Postal struct { |
|
conn *grpc.ClientConn |
|
client postal.PostalClient |
|
} |
|
|
|
func NewPostal(conn *grpc.ClientConn) *Postal { |
|
return &Postal{ |
|
conn: conn, |
|
client: postal.NewPostalClient(conn), |
|
} |
|
} |
|
|
|
func (p *Postal) Close() { |
|
err := p.conn.Close() |
|
if err != nil { |
|
logger.Error("postal close error: ", err) |
|
} |
|
} |
|
|
|
// DeliverGroup 群消息发送 |
|
func (p *Postal) DeliverGroup(req *postal.ReqDeliverGroup) { |
|
// todo put in chan |
|
res, err := p.client.DeliverGroup(context.Background(), req) |
|
if err != nil || !res.Ok { |
|
logger.Errorf("deliver to postal failed: %+v, %v", res, err) |
|
} |
|
} |
|
|
|
// GroupDissolve 解散群组 |
|
func (p *Postal) GroupDissolve(req *postal.ReqGroupDissolve) { |
|
// todo put in chan |
|
_, err := p.client.GroupDissolve(context.Background(), req) |
|
if err != nil { |
|
logger.Errorf("group dissolve failed: %v", err) |
|
} |
|
}
|
|
|