| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- package dpsv1
- import (
- "context"
- "encoding/json"
- "git.sxidc.com/service-supports/dps-sdk/pb/v1"
- "git.sxidc.com/service-supports/dps-sdk/pb/v1/request"
- "git.sxidc.com/service-supports/dps-sdk/ports"
- "google.golang.org/grpc"
- "google.golang.org/grpc/credentials/insecure"
- )
- type Client struct {
- conn *grpc.ClientConn
- commandServiceClient v1.CommandServiceClient
- queryServiceClient v1.QueryServiceClient
- }
- func NewClient(address string) (*Client, error) {
- conn, err := grpc.DialContext(context.Background(), address,
- grpc.WithTransportCredentials(insecure.NewCredentials()))
- if err != nil {
- return nil, err
- }
- return &Client{
- conn: conn,
- commandServiceClient: v1.NewCommandServiceClient(conn),
- queryServiceClient: v1.NewQueryServiceClient(conn),
- }, nil
- }
- func DestroyClient(client *Client) error {
- if client == nil {
- return nil
- }
- err := client.conn.Close()
- if err != nil {
- return err
- }
- client.conn = nil
- client.commandServiceClient = nil
- client.queryServiceClient = nil
- client = nil
- return nil
- }
- func (c *Client) AutoMigrate(req *ports.AutoMigrateRequest) error {
- tableModelDescribeJsonByte, err := json.Marshal(req.TableModelDescribe)
- if err != nil {
- return err
- }
- _, err = c.commandServiceClient.AutoMigrate(context.Background(), &request.AutoMigrateRequest{
- DatabaseID: req.DatabaseID,
- TablePrefixWithSchema: req.TablePrefixWithSchema,
- Version: req.Version,
- TableModelDescribe: tableModelDescribeJsonByte,
- })
- if err != nil {
- return err
- }
- return nil
- }
- func (c *Client) Insert(req *ports.InsertRequest) (string, error) {
- keysJsonByte, err := json.Marshal(req.Keys)
- if err != nil {
- return "", err
- }
- tableRowJsonByte, err := json.Marshal(req.TableRow)
- if err != nil {
- return "", err
- }
- reply, err := c.commandServiceClient.Insert(context.Background(), &request.InsertRequest{
- DatabaseID: req.DatabaseID,
- TablePrefixWithSchema: req.TablePrefixWithSchema,
- Version: req.Version,
- Keys: keysJsonByte,
- TableRow: tableRowJsonByte,
- UserID: req.UserID,
- })
- if err != nil {
- return "", err
- }
- return reply.Statement, nil
- }
- // TODO InsertBatch
- func (c *Client) Delete(req *ports.DeleteRequest) (string, error) {
- keysJsonByte, err := json.Marshal(req.Keys)
- if err != nil {
- return "", err
- }
- reply, err := c.commandServiceClient.Delete(context.Background(), &request.DeleteRequest{
- DatabaseID: req.DatabaseID,
- TablePrefixWithSchema: req.TablePrefixWithSchema,
- Version: req.Version,
- Keys: keysJsonByte,
- UserID: req.UserID,
- })
- if err != nil {
- return "", err
- }
- return reply.Statement, nil
- }
- // TODO DeleteBatch
- func (c *Client) Update(req *ports.UpdateRequest) (string, error) {
- keysJsonByte, err := json.Marshal(req.Keys)
- if err != nil {
- return "", err
- }
- newTableRowJsonByte, err := json.Marshal(req.NewTableRow)
- if err != nil {
- return "", err
- }
- reply, err := c.commandServiceClient.Update(context.Background(), &request.UpdateRequest{
- DatabaseID: req.DatabaseID,
- TablePrefixWithSchema: req.TablePrefixWithSchema,
- Version: req.Version,
- Keys: keysJsonByte,
- NewTableRow: newTableRowJsonByte,
- UserID: req.UserID,
- })
- if err != nil {
- return "", err
- }
- return reply.Statement, nil
- }
- func (c *Client) Replay(req *ports.ReplayRequest) (string, error) {
- keysJsonByte, err := json.Marshal(req.Keys)
- if err != nil {
- return "", err
- }
- reply, err := c.commandServiceClient.Replay(context.Background(), &request.ReplayRequest{
- DatabaseID: req.DatabaseID,
- TablePrefixWithSchema: req.TablePrefixWithSchema,
- Version: req.Version,
- Keys: keysJsonByte,
- UserID: req.UserID,
- })
- if err != nil {
- return "", err
- }
- return reply.Statement, nil
- }
|