Documentation ¶
Overview ¶
Package catalogdynamo package store all the data in a single multi-tenant table:
Index ¶
- Constants
- func AlbumIndexedKeyPK(owner ownermodel.Owner, folderName catalog.FolderName) string
- func AlbumPrimaryKey(owner ownermodel.Owner, folderName catalog.FolderName) appdynamodb.TablePk
- func MediaPrimaryKey(owner ownermodel.Owner, id catalog.MediaId) appdynamodb.TablePk
- type AlbumIndexKey
- type AlbumRecord
- type MediaRecord
- type Repository
- func (r *Repository) AmendDates(ctx context.Context, albumId catalog.AlbumId, start, end time.Time) error
- func (r *Repository) CountMedia(ctx context.Context, album ...catalog.AlbumId) (map[catalog.AlbumId]int, error)
- func (r *Repository) CountMediasBySelectors(ctx context.Context, owner ownermodel.Owner, selectors []catalog.MediaSelector) (int, error)
- func (r *Repository) DeleteAlbum(ctx context.Context, albumId catalog.AlbumId) error
- func (r *Repository) FindAlbumById(ctx context.Context, id catalog.AlbumId) (*catalog.Album, error)
- func (r *Repository) FindAlbumByIds(ctx context.Context, ids ...catalog.AlbumId) ([]*catalog.Album, error)
- func (r *Repository) FindAlbumsByOwner(ctx context.Context, owner ownermodel.Owner) ([]*catalog.Album, error)
- func (r *Repository) FindExistingSignatures(ctx context.Context, owner ownermodel.Owner, ...) ([]*catalog.MediaSignature, error)
- func (r *Repository) FindMediaCurrentAlbum(ctx context.Context, owner ownermodel.Owner, mediaId catalog.MediaId) (*catalog.AlbumId, error)
- func (r *Repository) FindMediaIds(ctx context.Context, request *catalog.FindMediaRequest) ([]catalog.MediaId, error)
- func (r *Repository) FindMedias(ctx context.Context, request *catalog.FindMediaRequest) ([]*catalog.MediaMeta, error)
- func (r *Repository) InsertAlbum(ctx context.Context, album catalog.Album) error
- func (r *Repository) InsertMedias(ctx context.Context, owner ownermodel.Owner, ...) error
- func (r *Repository) TransferMediasFromRecords(ctx context.Context, records catalog.MediaTransferRecords) (catalog.TransferredMedias, error)
- func (r *Repository) UpdateAlbumName(ctx context.Context, albumId catalog.AlbumId, newName string) error
Constants ¶
View Source
const (
IsoTime = "2006-01-02T15:04:05"
)
Variables ¶
This section is empty.
Functions ¶
func AlbumIndexedKeyPK ¶
func AlbumIndexedKeyPK(owner ownermodel.Owner, folderName catalog.FolderName) string
func AlbumPrimaryKey ¶
func AlbumPrimaryKey(owner ownermodel.Owner, folderName catalog.FolderName) appdynamodb.TablePk
func MediaPrimaryKey ¶
func MediaPrimaryKey(owner ownermodel.Owner, id catalog.MediaId) appdynamodb.TablePk
Types ¶
type AlbumIndexKey ¶
type AlbumIndexKey struct { AlbumIndexPK string // AlbumIndexPK is same than album's TablePk.PK AlbumIndexSK string // AlbumIndexSK identify the object within the index, and is naturally sorted }
AlbumIndexKey is a secondary key to index medias per albums
func AlbumIndexedKey ¶
func AlbumIndexedKey(owner ownermodel.Owner, folderName catalog.FolderName) AlbumIndexKey
func MediaAlbumIndexedKey ¶
func MediaAlbumIndexedKey(owner ownermodel.Owner, folderName catalog.FolderName, dateTime time.Time, id catalog.MediaId) AlbumIndexKey
type AlbumRecord ¶
type AlbumRecord struct { appdynamodb.TablePk AlbumIndexKey AlbumOwner string // AlbumOwner has been added to the data structure on 18 Apr 2022 AlbumName string AlbumFolderName string AlbumStart time.Time AlbumEnd time.Time }
type MediaRecord ¶
type MediaRecord struct { appdynamodb.TablePk AlbumIndexKey Id string // Id is the unique identifier of the media Type string // Type is either PHOTO or VIDEO DateTime time.Time // DateTime time used in AlbumIndexKey Details map[string]interface{} // Details are other attributes from domain model, stored as it Filename string // Filename is the original filename for display purpose only ; physical filename is in MediaLocationData SignatureSize int SignatureHash string }
type Repository ¶
type Repository struct {
// contains filtered or unexported fields
}
func NewRepository ¶
func NewRepository(client *dynamodb.Client, tableName string) *Repository
NewRepository creates the repository and connect to the database
func (*Repository) AmendDates ¶ added in v1.5.45
func (*Repository) CountMedia ¶ added in v1.5.50
func (*Repository) CountMediasBySelectors ¶ added in v1.5.41
func (r *Repository) CountMediasBySelectors(ctx context.Context, owner ownermodel.Owner, selectors []catalog.MediaSelector) (int, error)
func (*Repository) DeleteAlbum ¶ added in v1.5.41
func (*Repository) FindAlbumById ¶ added in v1.5.43
func (*Repository) FindAlbumByIds ¶ added in v1.5.43
func (*Repository) FindAlbumsByOwner ¶
func (r *Repository) FindAlbumsByOwner(ctx context.Context, owner ownermodel.Owner) ([]*catalog.Album, error)
func (*Repository) FindExistingSignatures ¶
func (r *Repository) FindExistingSignatures(ctx context.Context, owner ownermodel.Owner, signatures []*catalog.MediaSignature) ([]*catalog.MediaSignature, error)
func (*Repository) FindMediaCurrentAlbum ¶
func (r *Repository) FindMediaCurrentAlbum(ctx context.Context, owner ownermodel.Owner, mediaId catalog.MediaId) (*catalog.AlbumId, error)
func (*Repository) FindMediaIds ¶
func (r *Repository) FindMediaIds(ctx context.Context, request *catalog.FindMediaRequest) ([]catalog.MediaId, error)
func (*Repository) FindMedias ¶
func (r *Repository) FindMedias(ctx context.Context, request *catalog.FindMediaRequest) ([]*catalog.MediaMeta, error)
func (*Repository) InsertAlbum ¶
func (*Repository) InsertMedias ¶
func (r *Repository) InsertMedias(ctx context.Context, owner ownermodel.Owner, medias []catalog.CreateMediaRequest) error
func (*Repository) TransferMediasFromRecords ¶ added in v1.5.33
func (r *Repository) TransferMediasFromRecords(ctx context.Context, records catalog.MediaTransferRecords) (catalog.TransferredMedias, error)
func (*Repository) UpdateAlbumName ¶ added in v1.5.43
Click to show internal directories.
Click to hide internal directories.