func (server *Server) SendMessage(ctx context.Context, in *pb.Message) (*pb.SendMessageResponse, error) { if in.Language == "" { in.Language = server.Config.DefaultLanguage } n := len(in.Targets) logrus.Debugf("SendMessage with event='%s' and language='%s' to #%d target(s)", in.Event, in.Language, n) results := make([]*pb.MessageTargetResponse, 0) ch := make(chan drivers.DriverResult, 1) go server.send(ctx, in, ch) for i := 0; i < n; i++ { r := <-ch resp := &pb.MessageTargetResponse{ Target: string(r.Type), Output: "Success", } if r.Err != nil { resp.Output = r.Err.Error() } results = append(results, resp) } if logrus.GetLevel() >= logrus.DebugLevel { for _, t := range results { logrus.Debugf("SendMessage output[%s]= %s", t.Target, t.Output) } } return pb.NewMessageResponse(results), nil }