Skip to content

Commit b195cd3

Browse files
authored
Merge pull request #12 from vimeda/update-api
Update pletter API
2 parents 5758c4b + e0b7aed commit b195cd3

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

any/any.go

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
package any
22

33
import (
4+
"errors"
5+
"fmt"
46
"strings"
57

6-
"github.com/golang/protobuf/proto"
8+
proto_old "github.com/golang/protobuf/proto"
79
"github.com/golang/protobuf/ptypes"
8-
"github.com/golang/protobuf/ptypes/any"
910
"github.com/vimeda/pletter/pb"
11+
"google.golang.org/protobuf/proto"
12+
"google.golang.org/protobuf/types/known/anypb"
1013
)
1114

15+
// ErrEmptyMessage when message is nil
16+
var ErrEmptyMessage = errors.New("message is nil")
17+
1218
// PackAndMarshal packs a proto message into an envelope message and marshal it
1319
func PackAndMarshal(m proto.Message) ([]byte, error) {
1420
e, err := Pack(m)
@@ -21,14 +27,22 @@ func PackAndMarshal(m proto.Message) ([]byte, error) {
2127

2228
// Pack packs a proto message into an envelope message
2329
func Pack(m proto.Message) (pb.Envelope, error) {
30+
if m == nil {
31+
return pb.Envelope{}, ErrEmptyMessage
32+
}
33+
2434
raw, err := proto.Marshal(m)
2535
if err != nil {
2636
return pb.Envelope{}, err
2737
}
2838

39+
fullName := m.ProtoReflect().Descriptor().FullName()
40+
41+
fmt.Println(fullName)
42+
2943
return pb.Envelope{
30-
InnerMessage: &any.Any{
31-
TypeUrl: "github.com/lykon/pletter/" + proto.MessageName(m),
44+
InnerMessage: &anypb.Any{
45+
TypeUrl: fmt.Sprintf("github.com/lykon/pletter/%s", fullName),
3246
Value: raw,
3347
},
3448
}, nil
@@ -42,12 +56,10 @@ func Unpack(m []byte, t proto.Message) error {
4256
return err
4357
}
4458

45-
err = ptypes.UnmarshalAny(e.GetInnerMessage(), t)
46-
if err != nil {
47-
return err
48-
}
49-
50-
return nil
59+
return ptypes.UnmarshalAny(
60+
e.GetInnerMessage(),
61+
proto_old.MessageV1(t),
62+
)
5163
}
5264

5365
// GetMessageName returns the message name from the wrapped proto message

0 commit comments

Comments
 (0)