package backend import ( "context" "google.golang.org/genproto/googleapis/rpc/errdetails" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "github.com/johanbrandhorst/wasm-experiments/grpc/proto/server" ) // Backend should be used to implement the server interface // exposed by the generated server proto. type Backend struct { } // Ensure struct implements interface var _ server.BackendServer = (*Backend)(nil) func (b Backend) GetUser(ctx context.Context, req *server.GetUserRequest) (*server.User, error) { if req.GetUserId() != "1234" { st := status.New(codes.InvalidArgument, "invalid id") detSt, err := st.WithDetails(&errdetails.BadRequest{ FieldViolations: []*errdetails.BadRequest_FieldViolation{ { Field: "user", Description: "That user does not exist", }, }, }) if err == nil { return nil, detSt.Err() } return nil, st.Err() } return &server.User{ Id: req.GetUserId(), }, nil } func (b Backend) GetUsers(req *server.GetUsersRequest, srv server.Backend_GetUsersServer) error { return nil }