12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package fho_client
- import (
- "context"
- "encoding/json"
- "errors"
- "time"
- pb "git.mokkon.com/sainw/fho_proto"
- "google.golang.org/grpc"
- "google.golang.org/grpc/metadata"
- )
- type FhoClient struct {
- id string
- key string
- dataService pb.DataServiceClient
- }
- func NewClient(address string, id string, key string) (*FhoClient, error) {
- conn, err := grpc.Dial(address, grpc.WithInsecure(), grpc.WithBlock())
- if err != nil {
- return nil, err
- }
- return &FhoClient{id: id, key: key, dataService: pb.NewDataServiceClient(conn)}, nil
- }
- func (f *FhoClient) Query(object string) ([]map[string]interface{}, error) {
- ctx, cancel := context.WithTimeout(context.Background(), time.Second)
- md := metadata.Pairs("id", f.id, "key", f.key)
- ctx = metadata.NewOutgoingContext(ctx, md)
- defer cancel()
- r, err := f.dataService.GetData(ctx, &pb.DataRequest{Object: object})
- if err != nil {
- return nil, err
- }
- if r.ReplyStatus == pb.DataReply_ERROR {
- return nil, errors.New(r.ErrorMsg)
- }
- data := r.GetData()
- jsonMap := make([]map[string]interface{}, 0)
- err = json.Unmarshal([]byte(data), &jsonMap)
- if err != nil {
- return nil, err
- }
- return jsonMap, nil
- }
|