Wrap errors so it's clear either error is coming from SDK or Connect

This commit is contained in:
Volodymyr Zotov
2025-06-06 12:53:56 -05:00
parent 97e06e5c4d
commit 4757263c66
2 changed files with 20 additions and 9 deletions

View File

@@ -30,7 +30,7 @@ func NewClient(config Config) *Connect {
func (c *Connect) GetItemByID(vaultID, itemID string) (*model.Item, error) { func (c *Connect) GetItemByID(vaultID, itemID string) (*model.Item, error) {
connectItem, err := c.client.GetItemByUUID(itemID, vaultID) connectItem, err := c.client.GetItemByUUID(itemID, vaultID)
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("1password Connect error: %w", err)
} }
var item model.Item var item model.Item
@@ -42,7 +42,7 @@ func (c *Connect) GetItemsByTitle(vaultID, itemTitle string) ([]model.Item, erro
// Get all items in the vault with the specified title // Get all items in the vault with the specified title
connectItems, err := c.client.GetItemsByTitle(itemTitle, vaultID) connectItems, err := c.client.GetItemsByTitle(itemTitle, vaultID)
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("1password Connect error: %w", err)
} }
var items []model.Item var items []model.Item
@@ -56,15 +56,20 @@ func (c *Connect) GetItemsByTitle(vaultID, itemTitle string) ([]model.Item, erro
} }
func (c *Connect) GetFileContent(vaultID, itemID, fileID string) ([]byte, error) { func (c *Connect) GetFileContent(vaultID, itemID, fileID string) ([]byte, error) {
return c.client.GetFileContent(&onepassword.File{ bytes, err := c.client.GetFileContent(&onepassword.File{
ContentPath: fmt.Sprintf("/v1/vaults/%s/items/%s/files/%s/content", vaultID, itemID, fileID), ContentPath: fmt.Sprintf("/v1/vaults/%s/items/%s/files/%s/content", vaultID, itemID, fileID),
}) })
if err != nil {
return nil, fmt.Errorf("1password Connect error: %w", err)
}
return bytes, nil
} }
func (c *Connect) GetVaultsByTitle(vaultQuery string) ([]model.Vault, error) { func (c *Connect) GetVaultsByTitle(vaultQuery string) ([]model.Vault, error) {
connectVaults, err := c.client.GetVaultsByTitle(vaultQuery) connectVaults, err := c.client.GetVaultsByTitle(vaultQuery)
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("1password Connect error: %w", err)
} }
var vaults []model.Vault var vaults []model.Vault

View File

@@ -2,6 +2,7 @@ package sdk
import ( import (
"context" "context"
"fmt"
"github.com/1Password/onepassword-operator/pkg/onepassword/model" "github.com/1Password/onepassword-operator/pkg/onepassword/model"
sdk "github.com/1password/onepassword-sdk-go" sdk "github.com/1password/onepassword-sdk-go"
@@ -25,7 +26,7 @@ func NewClient(config Config) (*SDK, error) {
sdk.WithIntegrationInfo(config.IntegrationName, config.IntegrationVersion), sdk.WithIntegrationInfo(config.IntegrationName, config.IntegrationVersion),
) )
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("1password sdk error: %w", err)
} }
return &SDK{ return &SDK{
@@ -36,7 +37,7 @@ func NewClient(config Config) (*SDK, error) {
func (s *SDK) GetItemByID(vaultID, itemID string) (*model.Item, error) { func (s *SDK) GetItemByID(vaultID, itemID string) (*model.Item, error) {
sdkItem, err := s.client.Items().Get(context.Background(), vaultID, itemID) sdkItem, err := s.client.Items().Get(context.Background(), vaultID, itemID)
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("1password sdk error: %w", err)
} }
var item model.Item var item model.Item
@@ -48,7 +49,7 @@ func (s *SDK) GetItemsByTitle(vaultID, itemTitle string) ([]model.Item, error) {
// Get all items in the vault // Get all items in the vault
sdkItems, err := s.client.Items().List(context.Background(), vaultID) sdkItems, err := s.client.Items().List(context.Background(), vaultID)
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("1password sdk error: %w", err)
} }
// Filter items by title // Filter items by title
@@ -65,16 +66,21 @@ func (s *SDK) GetItemsByTitle(vaultID, itemTitle string) ([]model.Item, error) {
} }
func (s *SDK) GetFileContent(vaultID, itemID, fileID string) ([]byte, error) { func (s *SDK) GetFileContent(vaultID, itemID, fileID string) ([]byte, error) {
return s.client.Items().Files().Read(context.Background(), vaultID, itemID, sdk.FileAttributes{ bytes, err := s.client.Items().Files().Read(context.Background(), vaultID, itemID, sdk.FileAttributes{
ID: fileID, ID: fileID,
}) })
if err != nil {
return nil, fmt.Errorf("1password sdk error: %w", err)
}
return bytes, nil
} }
func (s *SDK) GetVaultsByTitle(title string) ([]model.Vault, error) { func (s *SDK) GetVaultsByTitle(title string) ([]model.Vault, error) {
// List all vaults // List all vaults
sdkVaults, err := s.client.Vaults().List(context.Background()) sdkVaults, err := s.client.Vaults().List(context.Background())
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("1password sdk error: %w", err)
} }
// Filter vaults by title // Filter vaults by title