
backend
Package backend is a generated GoMock package.
Index
- Variables
- type BucketInfo
- type BucketRecord
- type GetObjectResult
- type GmailBackend
- func NewGmailBackend(ctx context.Context, cfg *config.GmailConfig, store MetadataStore) (*GmailBackend, error)
- func (g *GmailBackend) CreateBucket(ctx context.Context, bucket string) error
- func (g *GmailBackend) DeleteObject(ctx context.Context, bucket, key string) error
- func (g *GmailBackend) GetObject(ctx context.Context, bucket, key string) (*GetObjectResult, error)
- func (g *GmailBackend) HeadObject(ctx context.Context, bucket, key string) (*HeadObjectResult, error)
- func (g *GmailBackend) ListBuckets(ctx context.Context) ([]BucketInfo, error)
- func (g *GmailBackend) ListObjects(ctx context.Context, bucket, prefix, delimiter, startAfter string, maxKeys int) (*ListObjectsResult, error)
- func (g *GmailBackend) PutObject(ctx context.Context, bucket, key string, body io.Reader, size int64, contentType string, metadata map[string]string) (string, error)
- type HeadObjectResult
- type ListObjectsResult
- type MetadataStore
- type MockObjectBackend
- func NewMockObjectBackend(ctrl *gomock.Controller) *MockObjectBackend
- func (m *MockObjectBackend) CreateBucket(ctx context.Context, bucket string) error
- func (m *MockObjectBackend) DeleteObject(ctx context.Context, bucket, key string) error
- func (m *MockObjectBackend) EXPECT() *MockObjectBackendMockRecorder
- func (m *MockObjectBackend) GetObject(ctx context.Context, bucket, key string) (*GetObjectResult, error)
- func (m *MockObjectBackend) HeadObject(ctx context.Context, bucket, key string) (*HeadObjectResult, error)
- func (m *MockObjectBackend) ListBuckets(ctx context.Context) ([]BucketInfo, error)
- func (m *MockObjectBackend) ListObjects(ctx context.Context, bucket, prefix, delimiter, startAfter string, maxKeys int) (*ListObjectsResult, error)
- func (m *MockObjectBackend) PutObject(ctx context.Context, bucket, key string, body io.Reader, size int64, contentType string, metadata map[string]string) (string, error)
- type MockObjectBackendMockRecorder
- func (mr *MockObjectBackendMockRecorder) CreateBucket(ctx, bucket any) *gomock.Call
- func (mr *MockObjectBackendMockRecorder) DeleteObject(ctx, bucket, key any) *gomock.Call
- func (mr *MockObjectBackendMockRecorder) GetObject(ctx, bucket, key any) *gomock.Call
- func (mr *MockObjectBackendMockRecorder) HeadObject(ctx, bucket, key any) *gomock.Call
- func (mr *MockObjectBackendMockRecorder) ListBuckets(ctx any) *gomock.Call
- func (mr *MockObjectBackendMockRecorder) ListObjects(ctx, bucket, prefix, delimiter, startAfter, maxKeys any) *gomock.Call
- func (mr *MockObjectBackendMockRecorder) PutObject(ctx, bucket, key, body, size, contentType, metadata any) *gomock.Call
- type ObjectBackend
- type ObjectInfo
- type ObjectRecord
- type S3Error
- type SyncMetadata
Variables
Sentinel errors for common S3 error conditions.
type BucketInfo
BucketInfo describes a bucket in a ListBuckets response.
type BucketRecord
BucketRecord represents a stored bucket’s label mapping.
type GetObjectResult
GetObjectResult holds the response data from a GetObject operation.
type GmailBackend
GmailBackend implements ObjectBackend using Gmail for metadata and Google Drive for object data storage.
func NewGmailBackend
NewGmailBackend creates a GmailBackend from the provided configuration. It builds an OAuth2 token source from the configured client credentials and refresh token, then initializes the Gmail and Drive API clients.
func (*GmailBackend) CreateBucket
CreateBucket creates a new Gmail label for the given bucket name.
func (*GmailBackend) DeleteObject
DeleteObject removes an object by deleting its Drive file, Gmail message, and metadata store record. Returns nil if the object does not exist (S3 idempotency).
func (*GmailBackend) GetObject
GetObject retrieves object data from Google Drive using the file ID stored in the local index or Gmail email metadata.
func (*GmailBackend) HeadObject
HeadObject retrieves only the metadata for an object. Checks the local SQLite index first (zero API calls). Falls back to Gmail API on cache miss.
func (*GmailBackend) ListBuckets
ListBuckets returns all Gmail labels that match the configured label prefix, interpreted as S3 buckets.
func (*GmailBackend) ListObjects
ListObjects searches Gmail for emails matching the given bucket and prefix, returning results in S3 ListObjectsV2 format with delimiter and pagination support.
func (*GmailBackend) PutObject
PutObject uploads object data to Google Drive and stores a metadata-only email in Gmail as a pointer. If an object with the same key exists, it is deleted first (last-write-wins semantics).
type HeadObjectResult
HeadObjectResult holds metadata from a HeadObject operation.
type ListObjectsResult
ListObjectsResult holds the response from a ListObjectsV2 operation.
type MetadataStore
MetadataStore is the interface for the local metadata index. Decouples the backend from the concrete SQLite implementation for testability.
type MockObjectBackend
MockObjectBackend is a mock of ObjectBackend interface.
func NewMockObjectBackend
NewMockObjectBackend creates a new mock instance.
func (*MockObjectBackend) CreateBucket
CreateBucket mocks base method.
func (*MockObjectBackend) DeleteObject
DeleteObject mocks base method.
func (*MockObjectBackend) EXPECT
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockObjectBackend) GetObject
GetObject mocks base method.
func (*MockObjectBackend) HeadObject
HeadObject mocks base method.
func (*MockObjectBackend) ListBuckets
ListBuckets mocks base method.
func (*MockObjectBackend) ListObjects
ListObjects mocks base method.
func (*MockObjectBackend) PutObject
PutObject mocks base method.
type MockObjectBackendMockRecorder
MockObjectBackendMockRecorder is the mock recorder for MockObjectBackend.
func (*MockObjectBackendMockRecorder) CreateBucket
CreateBucket indicates an expected call of CreateBucket.
func (*MockObjectBackendMockRecorder) DeleteObject
DeleteObject indicates an expected call of DeleteObject.
func (*MockObjectBackendMockRecorder) GetObject
GetObject indicates an expected call of GetObject.
func (*MockObjectBackendMockRecorder) HeadObject
HeadObject indicates an expected call of HeadObject.
func (*MockObjectBackendMockRecorder) ListBuckets
ListBuckets indicates an expected call of ListBuckets.
func (*MockObjectBackendMockRecorder) ListObjects
ListObjects indicates an expected call of ListObjects.
func (*MockObjectBackendMockRecorder) PutObject
PutObject indicates an expected call of PutObject.
type ObjectBackend
ObjectBackend defines the storage operations for the S3 gateway.
type ObjectInfo
ObjectInfo describes a single object in a listing response.
type ObjectRecord
ObjectRecord represents a stored object’s metadata and Gmail reference.
type S3Error
S3Error represents a typed error that maps to an S3 HTTP error response.
func (*S3Error) Error
Error implements the error interface.
type SyncMetadata
SyncMetadata holds parsed metadata fields needed by the sync command.
func ParseMetadataForSync
ParseMetadataForSync parses the JSON email body and returns metadata fields for populating the SQLite index during sync.
Generated by gomarkdoc