diff --git a/internal/db/db.go b/internal/db/db.go index 374732b..6296f0d 100644 --- a/internal/db/db.go +++ b/internal/db/db.go @@ -7,9 +7,18 @@ import ( ) type DB interface { + // Return nil if share does not exist GetShare(ctx context.Context, slug string) (*types.Share, error) + + // Returns error if share already exists CreateShare(ctx context.Context, share *types.Share) error + + // Returns error if share does not exist DeleteShare(ctx context.Context, slug string) error + + // Returns all shares GetAllShares(ctx context.Context) ([]*types.Share, error) + + // Close the database Close() error } diff --git a/internal/s3/s3.go b/internal/s3/s3.go index 7f1ac27..a06cc43 100644 --- a/internal/s3/s3.go +++ b/internal/s3/s3.go @@ -15,7 +15,12 @@ type ObjectReader interface { } type S3 interface { + // Get the object from the S3 bucket. Returns an error if the object does not exist. GetObject(ctx context.Context, key string) (ObjectReader, error) + + // Check if the given key exists KeyExists(ctx context.Context, key string) (bool, error) + + // Get object metadata. The `Filename` field is optional. Returns nil if the object does not exist. GetObjectMetadata(ctx context.Context, key string) (*types.Metadata, error) }