Skip to content

Commit 8249250

Browse files
committed
refactor(sdk): extract checkHeader into the separate file
1 parent 9fa693f commit 8249250

3 files changed

Lines changed: 25 additions & 16 deletions

File tree

header.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package envector
2+
3+
import (
4+
"fmt"
5+
"strings"
6+
7+
es2pb "github.com/CryptoLabInc/envector-go-sdk/internal/transport/pb/es2"
8+
)
9+
10+
// Marks a server side idempotency rejection
11+
const alreadyExistsPrefix = "ALREADY_EXISTS:"
12+
13+
// Shared by gRPC in SDK which returns ResponseHeader
14+
func checkHeader(rpc string, h *es2pb.ResponseHeader) error {
15+
if h == nil {
16+
return nil
17+
}
18+
if rc := h.GetReturnCode(); rc != es2pb.ReturnCode_Success {
19+
if strings.HasPrefix(h.GetErrorMessage(), alreadyExistsPrefix) {
20+
return fmt.Errorf("envector: %s: %w: %s", rpc, ErrAlreadyExists, h.GetErrorMessage())
21+
}
22+
return fmt.Errorf("envector: %s: server returned %s: %s", rpc, rc, h.GetErrorMessage())
23+
}
24+
return nil
25+
}

index.go

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package envector
33
import (
44
"context"
55
"fmt"
6-
"strings"
76

87
es2pb "github.com/CryptoLabInc/envector-go-sdk/internal/transport/pb/es2"
98
es2epb "github.com/CryptoLabInc/envector-go-sdk/internal/transport/pb/es2e"
@@ -123,16 +122,4 @@ func (i *Index) Drop(ctx context.Context) error {
123122
return checkHeader("delete_index", resp.GetHeader())
124123
}
125124

126-
func checkHeader(rpc string, h *es2pb.ResponseHeader) error {
127-
if h == nil {
128-
return nil
129-
}
130-
if rc := h.GetReturnCode(); rc != es2pb.ReturnCode_Success {
131-
if strings.HasPrefix(h.GetErrorMessage(), alreadyExistsPrefix) {
132-
return fmt.Errorf("envector: %s: %w: %s", rpc, ErrAlreadyExists, h.GetErrorMessage())
133-
}
134-
return fmt.Errorf("envector: %s: server returned %s: %s", rpc, rc, h.GetErrorMessage())
135-
}
136-
return nil
137-
}
138125

insert.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ import (
1010

1111
const insertChunkSize = 1 * 1024 * 1024
1212

13-
// Marker when request_id collides with previously committed operation
14-
const alreadyExistsPrefix = "ALREADY_EXISTS:"
15-
1613
// InsertRequest carries plaintext vectors and one parallel metadata string
1714
// per vector. Metadata is stored verbatim — the SDK never interprets it
1815
// (callers commonly pass a JSON envelope; opaque blobs work equally well).

0 commit comments

Comments
 (0)