45 lines
902 B
Go
45 lines
902 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"log"
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
"google.golang.org/protobuf/types/known/anypb"
|
|
"myschools.me/suguo/protobuf-demo/gen"
|
|
"myschools.me/suguo/protobuf-demo/model"
|
|
)
|
|
|
|
type Demo struct {
|
|
gen.UnimplementedDemoServer
|
|
}
|
|
|
|
func (d *Demo) Call(ctx context.Context, req *gen.DemoCallResquest) (*gen.DemoCallResponse, error) {
|
|
born := time.Now()
|
|
user := &model.User{
|
|
UserID: uuid.Must(uuid.NewRandom()).String(),
|
|
Name: "abc",
|
|
Sex: "male",
|
|
Born: &born,
|
|
Acc: &model.Account{
|
|
Logname: "ssdf@sss.com",
|
|
Last: &time.Time{},
|
|
},
|
|
}
|
|
obj, err := json.Marshal(user)
|
|
if err != nil {
|
|
log.Fatalln(" is not proto.Message", err)
|
|
return nil, nil
|
|
}
|
|
result := &gen.DemoCallResponse{
|
|
Result: req.C1,
|
|
Data: &anypb.Any{
|
|
TypeUrl: "myschools.me/wodeschool/protobuf-demo/model/User",
|
|
Value: obj,
|
|
},
|
|
}
|
|
return result, nil
|
|
}
|