database

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 13, 2026 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SortByName      SortBy = "name"
	SortByDate      SortBy = "date"
	SortByPlayCount SortBy = "play_count"

	SortAsc  SortOrder = "ASC"
	SortDesc SortOrder = "DESC"
)

Variables

View Source
var (
	ErrNoRowDeleted = errors.New("no row was deleted")
	ErrNoUser       = errors.New("no user id provided")
)
View Source
var ErrNotFound = errors.New("db entry not found")

Functions

This section is empty.

Types

type AuthFace

type AuthFace interface {
	Begin(ctx context.Context) (DatabaseFace, error)
	driver.Tx

	UserExistsByID(ctx context.Context, ID uuid.UUID) (bool, error)
	CreateUser(ctx context.Context, user types.User) (uuid.UUID, error)
	UpdateUser(ctx context.Context, user types.User) error
	RemoveUser(ctx context.Context, userID uuid.UUID) error
	GetUserFromEmail(ctx context.Context, email string) (types.User, error)
	ListUsers(ctx context.Context) ([]types.UserDetails, error)

	CreateAuthIdentity(ctx context.Context, ai types.AuthIdentity) (uuid.UUID, error)
	GetAuthIdentityForUser(ctx context.Context, userID uuid.UUID) (ai types.AuthIdentity, err error)
	UpdateAuthIdentity(ctx context.Context, ai types.AuthIdentity) error

	GetLocalCredentialsForUser(ctx context.Context, userID uuid.UUID) (lc types.LocalCredentials, err error)
	CreateLocalCredentials(ctx context.Context, lc types.LocalCredentials) error
	UpdateLocalCredentials(ctx context.Context, lc types.LocalCredentials) error

	CreateUserScope(ctx context.Context, us types.UserScope) error
	UserScopeExists(ctx context.Context, userID uuid.UUID, role types.UserRole) (bool, error)
	RemoveUserScope(ctx context.Context, userID uuid.UUID, role types.UserRole) error
	ListUserRoles(ctx context.Context, userID uuid.UUID) (roles []types.UserRole, err error)

	CreateToken(ctx context.Context, t types.Token) (uuid.UUID, error)
	GetTokenFromHash(ctx context.Context, hash string) (token types.Token, err error)
	GetToken(ctx context.Context, id uuid.UUID) (token types.Token, err error)
	RemoveToken(ctx context.Context, id uuid.UUID) error
	RemoveExpiredTokens(ctx context.Context) (int64, error)
	ListUserTokens(ctx context.Context, userID uuid.UUID) (tokens []types.TokenLimited, err error)
	UpdateTokenLastUsed(ctx context.Context, tokenID uuid.UUID) (err error)

	GetUserDetails(ctx context.Context, userID uuid.UUID) (user types.UserDetails, err error)
}

type Database

type Database struct {
	// contains filtered or unexported fields
}

func New

func New(db *sqlx.DB) (Database, error)

func (Database) AddAlbum

func (d Database) AddAlbum(ctx context.Context, a types.Album, userID uuid.UUID) (uuid.UUID, error)

func (Database) AddAlbumArtist

func (d Database) AddAlbumArtist(ctx context.Context, aa types.AlbumArtist, userID uuid.UUID) (uuid.UUID, error)

func (Database) AddAlbumTrack

func (d Database) AddAlbumTrack(ctx context.Context, at types.AlbumTrack, userID uuid.UUID) (uuid.UUID, error)

func (Database) AddArtist

func (d Database) AddArtist(ctx context.Context, a types.Artist, userID uuid.UUID) (uuid.UUID, error)

func (Database) AddDevice

func (d Database) AddDevice(ctx context.Context, device types.Device) error

func (Database) AddImport

func (d Database) AddImport(ctx context.Context, i types.Import) (uuid.UUID, error)

func (Database) AddLike

func (d Database) AddLike(ctx context.Context, l types.Like) (uuid.UUID, error)

func (Database) AddMediaFile

func (d Database) AddMediaFile(ctx context.Context, mf types.MediaFile, userID uuid.UUID) (uuid.UUID, error)

func (Database) AddPlayHistory

func (d Database) AddPlayHistory(ctx context.Context, trackID, userID uuid.UUID) (string, error)

func (Database) AddPlayHistoryStruct

func (d Database) AddPlayHistoryStruct(ctx context.Context, ph types.PlayHistory) (string, error)

func (Database) AddPlaylist

func (d Database) AddPlaylist(ctx context.Context, p types.Playlist, userID uuid.UUID) (uuid.UUID, error)

func (Database) AddPlaylistTrack

func (d Database) AddPlaylistTrack(ctx context.Context, p types.PlaylistTrack, userID uuid.UUID) (uuid.UUID, error)

func (Database) AddRating

func (d Database) AddRating(ctx context.Context, r types.Rating) (uuid.UUID, error)

func (Database) AddSearchItem

func (d Database) AddSearchItem(ctx context.Context, si types.SearchItem) error

func (Database) AddSmartPlaylist

func (d Database) AddSmartPlaylist(ctx context.Context, p types.SmartPlaylist, userID uuid.UUID) (uuid.UUID, error)

func (Database) AddSmartPlaylistArtist

func (d Database) AddSmartPlaylistArtist(ctx context.Context, a types.SmartPlaylistArtist, userID uuid.UUID) (uuid.UUID, error)

func (Database) AddSmartPlaylistContent

func (d Database) AddSmartPlaylistContent(ctx context.Context, c types.SmartPlaylistContent, userID uuid.UUID) (uuid.UUID, error)

func (Database) AddSync

func (d Database) AddSync(ctx context.Context, s types.DBSyncState) (string, error)

func (Database) AddSyncItem

func (d Database) AddSyncItem(ctx context.Context, s types.SyncItem) (uuid.UUID, error)

func (Database) AddTrack

func (d Database) AddTrack(ctx context.Context, t types.Track, userID uuid.UUID) (uuid.UUID, error)

func (Database) AddTrackAnalysis

func (d Database) AddTrackAnalysis(ctx context.Context, ta types.TrackAnalysis, userID uuid.UUID) error

func (Database) AddTrackArtist

func (d Database) AddTrackArtist(ctx context.Context, ta types.TrackArtist, userID uuid.UUID) (uuid.UUID, error)

func (Database) AlbumArtistExists

func (d Database) AlbumArtistExists(ctx context.Context, albumID uuid.UUID, artistID uuid.UUID, role types.ArtistRole) (bool, error)

func (Database) AlbumArtistExistsByID

func (d Database) AlbumArtistExistsByID(ctx context.Context, id uuid.UUID) (bool, error)

func (Database) AlbumExists

func (d Database) AlbumExists(ctx context.Context, ID string) (bool, error)

func (Database) AlbumTrackExists

func (d Database) AlbumTrackExists(ctx context.Context, albumID uuid.UUID, trackID uuid.UUID) (bool, error)

func (Database) AlbumTrackExistsByID

func (d Database) AlbumTrackExistsByID(ctx context.Context, id uuid.UUID) (bool, error)

func (Database) AlbumTrackExistsByPos

func (d Database) AlbumTrackExistsByPos(ctx context.Context, albumID uuid.UUID, discNumber, trackNumber int) (bool, error)

func (Database) ArtistExists

func (d Database) ArtistExists(ctx context.Context, ID string) (bool, error)

func (Database) Begin

func (d Database) Begin(ctx context.Context) (DatabaseFace, error)

func (Database) Commit

func (d Database) Commit() error

func (Database) CountAlbums

func (d Database) CountAlbums(ctx context.Context) (int, error)

func (Database) CountAlbumsByArtist

func (d Database) CountAlbumsByArtist(ctx context.Context, artistID uuid.UUID) (int, error)

func (Database) CountArtists

func (d Database) CountArtists(ctx context.Context) (int, error)

func (Database) CountPlaylistTracks

func (d Database) CountPlaylistTracks(ctx context.Context, playlistID uuid.UUID) (int, error)

func (Database) CountPlaylists

func (d Database) CountPlaylists(ctx context.Context, userID uuid.UUID) (int, error)

func (Database) CountTracks

func (d Database) CountTracks(ctx context.Context) (int, error)

func (Database) CountTracksByArtist

func (d Database) CountTracksByArtist(ctx context.Context, artistID uuid.UUID) (int, error)

func (Database) CreateAuthIdentity

func (d Database) CreateAuthIdentity(ctx context.Context, ai types.AuthIdentity) (uuid.UUID, error)

func (Database) CreateLocalCredentials

func (d Database) CreateLocalCredentials(ctx context.Context, lc types.LocalCredentials) error

func (Database) CreateToken

func (d Database) CreateToken(ctx context.Context, t types.Token) (uuid.UUID, error)

func (Database) CreateUser

func (d Database) CreateUser(ctx context.Context, user types.User) (uuid.UUID, error)

func (Database) CreateUserScope

func (d Database) CreateUserScope(ctx context.Context, us types.UserScope) error

func (Database) DeleteAlbumArtist

func (d Database) DeleteAlbumArtist(ctx context.Context, id, userID uuid.UUID) error

func (Database) DeleteAllSearchItems

func (d Database) DeleteAllSearchItems(ctx context.Context) error

func (Database) DeleteDevice

func (d Database) DeleteDevice(ctx context.Context, id uuid.UUID) error

func (Database) DeleteLike

func (d Database) DeleteLike(ctx context.Context, id, userID uuid.UUID) error

func (Database) DeletePlaylist

func (d Database) DeletePlaylist(ctx context.Context, id, userID uuid.UUID) error

func (Database) DeletePlaylistTrack

func (d Database) DeletePlaylistTrack(ctx context.Context, id, userID uuid.UUID) error

func (Database) DeleteTrackArtist

func (d Database) DeleteTrackArtist(ctx context.Context, id, userID uuid.UUID) error

func (Database) DeviceExists

func (d Database) DeviceExists(ctx context.Context, deviceID uuid.UUID) (bool, error)

func (Database) GetAlbumArtist

func (d Database) GetAlbumArtist(ctx context.Context, albumID, artistID uuid.UUID, role types.ArtistRole) (albumArtist types.AlbumArtist, err error)

func (Database) GetAlbumArtistByID

func (d Database) GetAlbumArtistByID(ctx context.Context, id uuid.UUID) (albumArtist types.AlbumArtist, err error)

func (Database) GetAlbumDetailed

func (d Database) GetAlbumDetailed(ctx context.Context, albumID uuid.UUID) (album types.AlbumDetailed, err error)

func (Database) GetAlbumFromArtistAndName

func (d Database) GetAlbumFromArtistAndName(ctx context.Context, artistName, albumName string) (album types.Album, err error)

func (Database) GetAlbumFromID

func (d Database) GetAlbumFromID(ctx context.Context, id uuid.UUID) (album types.Album, err error)

func (Database) GetAlbumFromMbID

func (d Database) GetAlbumFromMbID(ctx context.Context, mbID string) (album types.Album, err error)

func (Database) GetAlbumTrack

func (d Database) GetAlbumTrack(ctx context.Context, albumID uuid.UUID, discNumber, trackNumber int) (albumTrack types.AlbumTrack, err error)

func (Database) GetAlbumTrackByID

func (d Database) GetAlbumTrackByID(ctx context.Context, id uuid.UUID) (albumTrack types.AlbumTrack, err error)

func (Database) GetAlbumTrackFromAlbumAndTrack

func (d Database) GetAlbumTrackFromAlbumAndTrack(ctx context.Context, albumID, trackID uuid.UUID) (albumTrack types.AlbumTrack, err error)

func (Database) GetAlbumsByMbIDs

func (d Database) GetAlbumsByMbIDs(ctx context.Context, albumMbIds []string) ([]types.Album, error)

func (Database) GetArtistFromID

func (d Database) GetArtistFromID(ctx context.Context, id uuid.UUID) (artist types.Artist, err error)

func (Database) GetArtistFromMbID

func (d Database) GetArtistFromMbID(ctx context.Context, mbID string) (artist types.Artist, err error)

func (Database) GetArtistFromName

func (d Database) GetArtistFromName(ctx context.Context, name string) (artist types.Artist, err error)

func (Database) GetAuthIdentityForUser

func (d Database) GetAuthIdentityForUser(ctx context.Context, userID uuid.UUID) (ai types.AuthIdentity, err error)

func (Database) GetDevice

func (d Database) GetDevice(ctx context.Context, deviceID uuid.UUID) (types.Device, error)

func (Database) GetDeviceFromTokenAndDeviceID

func (d Database) GetDeviceFromTokenAndDeviceID(ctx context.Context, deviceID, tokenID uuid.UUID) (types.Device, error)

func (Database) GetDeviceFromTokenID

func (d Database) GetDeviceFromTokenID(ctx context.Context, tokenID uuid.UUID) (types.Device, error)

func (Database) GetDeviceTokenFromDeviceID

func (d Database) GetDeviceTokenFromDeviceID(ctx context.Context, deviceID uuid.UUID) (types.DeviceToken, error)

func (Database) GetLastSync

func (d Database) GetLastSync(ctx context.Context) (sync types.DBSyncState, err error)

func (Database) GetLike

func (d Database) GetLike(ctx context.Context, id, userID uuid.UUID) (like types.Like, err error)

func (Database) GetLikeID

func (d Database) GetLikeID(ctx context.Context, trackID, userID uuid.UUID) (uuid.UUID, error)

func (Database) GetLocalCredentialsForUser

func (d Database) GetLocalCredentialsForUser(ctx context.Context, userID uuid.UUID) (lc types.LocalCredentials, err error)

func (Database) GetMediaFile

func (d Database) GetMediaFile(ctx context.Context, id uuid.UUID) (mf types.MediaFile, err error)

func (Database) GetMediaFileFromChecksum

func (d Database) GetMediaFileFromChecksum(ctx context.Context, cs string) (mf types.MediaFile, err error)

func (Database) GetPlaylist

func (d Database) GetPlaylist(ctx context.Context, ID, userID uuid.UUID) (plist types.Playlist, err error)

func (Database) GetPlaylistTrack

func (d Database) GetPlaylistTrack(ctx context.Context, id uuid.UUID) (plistTrack types.PlaylistTrack, err error)

func (Database) GetPlaylistTrackByPlaylistAndAlbumTrack

func (d Database) GetPlaylistTrackByPlaylistAndAlbumTrack(ctx context.Context, playlistID, albumTrackID uuid.UUID) (plistTrack types.PlaylistTrack, err error)

func (Database) GetRating

func (d Database) GetRating(ctx context.Context, id uuid.UUID) (rating types.Rating, err error)

func (Database) GetRatingID

func (d Database) GetRatingID(ctx context.Context, trackID, userID uuid.UUID) (uuid.UUID, bool, error)

func (Database) GetSmartPlaylistArtist

func (d Database) GetSmartPlaylistArtist(ctx context.Context, id, userID uuid.UUID) (artist types.SmartPlaylistArtist, err error)

func (Database) GetSmartPlaylistContent

func (d Database) GetSmartPlaylistContent(ctx context.Context, id, userID uuid.UUID) (content types.SmartPlaylistContent, err error)

func (Database) GetToken

func (d Database) GetToken(ctx context.Context, id uuid.UUID) (token types.Token, err error)

func (Database) GetTokenFromHash

func (d Database) GetTokenFromHash(ctx context.Context, hash string) (token types.Token, err error)

func (Database) GetTrackAnalysisByID

func (d Database) GetTrackAnalysisByID(ctx context.Context, id uuid.UUID) (trackAnalysis types.TrackAnalysis, err error)

func (Database) GetTrackArtistByID

func (d Database) GetTrackArtistByID(ctx context.Context, id uuid.UUID) (trackArtist types.TrackArtist, err error)

func (Database) GetTrackDetailed

func (d Database) GetTrackDetailed(ctx context.Context, trackID, albumID, userID uuid.UUID) (track types.TrackDetailed, err error)

func (Database) GetTrackFromID

func (d Database) GetTrackFromID(ctx context.Context, ID uuid.UUID) (track types.Track, err error)

func (Database) GetTrackFromMbID

func (d Database) GetTrackFromMbID(ctx context.Context, mbID string) (track types.Track, err error)

func (Database) GetTrackFromName

func (d Database) GetTrackFromName(ctx context.Context, albumID uuid.UUID, trackName string) (track types.Track, err error)

func (Database) GetTrackRatings

func (d Database) GetTrackRatings(ctx context.Context, trackID uuid.UUID) (ratings []types.Rating, err error)

func (Database) GetTracksDetailedFromArtistID

func (d Database) GetTracksDetailedFromArtistID(ctx context.Context, artistID, userID uuid.UUID, sortBy SortBy, sortOrder SortOrder, limit *int, includeMissingFiles bool) (tracks []types.TrackDetailed, err error)

func (Database) GetTracksFromAlbumID

func (d Database) GetTracksFromAlbumID(ctx context.Context, albumID uuid.UUID) (tracks []types.Track, err error)

func (Database) GetUnanalysedTrack

func (d Database) GetUnanalysedTrack(ctx context.Context) (id uuid.UUID, found bool, err error)

func (Database) GetUnclaimedImport

func (d Database) GetUnclaimedImport(ctx context.Context) (i types.Import, found bool, err error)

func (Database) GetUnsyncedItem

func (d Database) GetUnsyncedItem(ctx context.Context) (si types.SyncItem, err error)

func (Database) GetUserDetails

func (d Database) GetUserDetails(ctx context.Context, userID uuid.UUID) (user types.UserDetails, err error)

func (Database) GetUserFromEmail

func (d Database) GetUserFromEmail(ctx context.Context, email string) (user types.User, err error)

func (Database) HasLike

func (d Database) HasLike(ctx context.Context, trackID, userID uuid.UUID) (bool, error)

func (Database) LinkDeviceToken

func (d Database) LinkDeviceToken(ctx context.Context, deviceID, tokenID uuid.UUID) error

func (Database) ListAlbumArtistsByAlbumID

func (d Database) ListAlbumArtistsByAlbumID(ctx context.Context, albumID uuid.UUID) (albumArtists []types.AlbumArtist, err error)

func (Database) ListAlbumTracksByTrackID

func (d Database) ListAlbumTracksByTrackID(ctx context.Context, trackID uuid.UUID) (results []types.AlbumTrack, err error)

func (Database) ListAlbumTracksDetailed

func (d Database) ListAlbumTracksDetailed(ctx context.Context, albumID, userID uuid.UUID) (tracks []types.TrackDetailed, err error)

func (Database) ListAlbums

func (d Database) ListAlbums(ctx context.Context) (albums []types.Album, err error)

func (Database) ListAlbumsByArtist

func (d Database) ListAlbumsByArtist(ctx context.Context, artistID uuid.UUID, sortBy SortBy, sortOrder SortOrder) (albums []types.AlbumDetailed, err error)

func (Database) ListArtists

func (d Database) ListArtists(ctx context.Context, sortBy SortBy, sortOrder SortOrder) (artists []types.ArtistDetailed, err error)

func (Database) ListArtistsWithoutMeta

func (d Database) ListArtistsWithoutMeta(ctx context.Context) (artists []types.Artist, err error)

func (Database) ListEntityEvents

func (d Database) ListEntityEvents(ctx context.Context, since time.Time) (events []types.EntityEvent, err error)

func (Database) ListEntityEventsByEntityType

func (d Database) ListEntityEventsByEntityType(ctx context.Context, entityType types.EntityType, since time.Time, userID *uuid.UUID) (ids []types.EntityEvent, err error)

func (Database) ListEntityEventsByType

func (d Database) ListEntityEventsByType(ctx context.Context, eventType types.EntityEventType, entityType types.EntityType, since time.Time) (ids []uuid.UUID, err error)

func (Database) ListFeaturedAlbumsByArtist

func (d Database) ListFeaturedAlbumsByArtist(ctx context.Context, artistID uuid.UUID, sortBy SortBy, sortOrder SortOrder) (albums []types.AlbumDetailed, err error)

func (Database) ListImports

func (d Database) ListImports(ctx context.Context, page, limit int) (i []types.Import, totalPages, totalItems int, err error)

func (Database) ListLikedTracksDetailed

func (d Database) ListLikedTracksDetailed(ctx context.Context, userID uuid.UUID) (tracks []types.TrackDetailed, err error)

func (Database) ListPlaylistTracks

func (d Database) ListPlaylistTracks(ctx context.Context, playlistID, userID uuid.UUID) (tracks []types.TrackDetailed, err error)

func (Database) ListPlaylists

func (d Database) ListPlaylists(ctx context.Context, userID uuid.UUID, includePublic bool, sortBy SortBy, sortOrder SortOrder) (playlists []types.Playlist, err error)

func (Database) ListTrackArtistsByTrackID

func (d Database) ListTrackArtistsByTrackID(ctx context.Context, trackID uuid.UUID) (trackArtists []types.TrackArtist, err error)

func (Database) ListTracks

func (d Database) ListTracks(ctx context.Context) (tracks []types.Track, err error)

func (Database) ListTracksWithFilters

func (d Database) ListTracksWithFilters(ctx context.Context, filter types.TrackFilter, page, limit int) (results []types.TrackDetailedNew, totalPages, totalItems int, err error)

func (Database) ListUpdatedAlbumArtists

func (d Database) ListUpdatedAlbumArtists(ctx context.Context, since time.Time) (albumArtists []uuid.UUID, err error)

func (Database) ListUpdatedAlbumTracks

func (d Database) ListUpdatedAlbumTracks(ctx context.Context, since time.Time) (albumTracks []uuid.UUID, err error)

func (Database) ListUpdatedAlbums

func (d Database) ListUpdatedAlbums(ctx context.Context, since time.Time) (albumIDs []string, err error)

func (Database) ListUpdatedArtists

func (d Database) ListUpdatedArtists(ctx context.Context, since time.Time) (artistIDs []string, err error)

func (Database) ListUpdatedMediaFiles

func (d Database) ListUpdatedMediaFiles(ctx context.Context, since time.Time) (mediaFileIDs []uuid.UUID, err error)

func (Database) ListUpdatedPlayHistory

func (d Database) ListUpdatedPlayHistory(ctx context.Context, since time.Time) (updatedItems []types.PlayHistory, err error)

func (Database) ListUpdatedPlaylistTracks

func (d Database) ListUpdatedPlaylistTracks(ctx context.Context, since time.Time, userID uuid.UUID) (plists []uuid.UUID, err error)

func (Database) ListUpdatedPlaylists

func (d Database) ListUpdatedPlaylists(ctx context.Context, since time.Time, userID uuid.UUID) (plists []uuid.UUID, err error)

func (Database) ListUpdatedTracks

func (d Database) ListUpdatedTracks(ctx context.Context, since time.Time) (trackIDs []string, err error)

func (Database) ListUserRoles

func (d Database) ListUserRoles(ctx context.Context, userID uuid.UUID) (roles []types.UserRole, err error)

func (Database) ListUserTokens

func (d Database) ListUserTokens(ctx context.Context, userID uuid.UUID) (tokens []types.TokenLimited, err error)

func (Database) ListUsers

func (d Database) ListUsers(ctx context.Context) ([]types.UserDetails, error)

func (Database) ListUsersDevices

func (d Database) ListUsersDevices(ctx context.Context, userID uuid.UUID) (devices []types.Device, err error)

func (Database) MediaFileExists

func (d Database) MediaFileExists(ctx context.Context, ID uuid.UUID) (bool, error)

func (Database) PlaylistExistsByID

func (d Database) PlaylistExistsByID(ctx context.Context, id uuid.UUID) (bool, error)

func (Database) PlaylistTrackExists

func (d Database) PlaylistTrackExists(ctx context.Context, id uuid.UUID) (bool, error)

func (Database) RemoveExpiredTokens

func (d Database) RemoveExpiredTokens(ctx context.Context) (int64, error)

func (Database) RemoveToken

func (d Database) RemoveToken(ctx context.Context, id uuid.UUID) error

func (Database) RemoveUser

func (d Database) RemoveUser(ctx context.Context, userID uuid.UUID) error

func (Database) RemoveUserScope

func (d Database) RemoveUserScope(ctx context.Context, userID uuid.UUID, role types.UserRole) error

func (Database) Rollback

func (d Database) Rollback() error

func (Database) SearchFull

func (d Database) SearchFull(ctx context.Context, searchTerm string, limit int) (results []types.SearchItem, err error)

func (Database) SetImportState

func (d Database) SetImportState(ctx context.Context, id uuid.UUID, state types.ImportState) error

func (Database) SetSyncItemState

func (d Database) SetSyncItemState(ctx context.Context, id uuid.UUID, state types.SyncItemState) error

func (Database) TrackExists

func (d Database) TrackExists(ctx context.Context, ID string) (bool, error)

func (Database) TrackExistsByMbID

func (d Database) TrackExistsByMbID(ctx context.Context, trackMbID string) (bool, error)

func (Database) TrackExistsByNameAndAlbumID

func (d Database) TrackExistsByNameAndAlbumID(ctx context.Context, title, albumID string) (bool, error)

func (Database) UpdateAlbum

func (d Database) UpdateAlbum(ctx context.Context, a types.Album, userID uuid.UUID) error

func (Database) UpdateAlbumArtist

func (d Database) UpdateAlbumArtist(ctx context.Context, aa types.AlbumArtist, userID uuid.UUID) error

func (Database) UpdateAlbumTrack

func (d Database) UpdateAlbumTrack(ctx context.Context, at types.AlbumTrack, userID uuid.UUID) error

func (Database) UpdateArtist

func (d Database) UpdateArtist(ctx context.Context, a types.Artist, userID uuid.UUID) error

func (Database) UpdateAuthIdentity

func (d Database) UpdateAuthIdentity(ctx context.Context, ai types.AuthIdentity) error

func (Database) UpdateDevice

func (d Database) UpdateDevice(ctx context.Context, device types.Device) error

func (Database) UpdateDeviceLastSeen

func (d Database) UpdateDeviceLastSeen(ctx context.Context, ipAddress string, deviceID uuid.UUID) error

func (Database) UpdateLocalCredentials

func (d Database) UpdateLocalCredentials(ctx context.Context, lc types.LocalCredentials) error

func (Database) UpdateMediaFile

func (d Database) UpdateMediaFile(ctx context.Context, mf types.MediaFile, userID uuid.UUID) error

func (Database) UpdatePlaylist

func (d Database) UpdatePlaylist(ctx context.Context, plist types.Playlist, userID uuid.UUID) error

func (Database) UpdateRating

func (d Database) UpdateRating(ctx context.Context, id uuid.UUID, rating int, userID uuid.UUID) error

func (Database) UpdateTokenLastUsed

func (d Database) UpdateTokenLastUsed(ctx context.Context, tokenID uuid.UUID) (err error)

func (Database) UpdateTrack

func (d Database) UpdateTrack(ctx context.Context, t types.Track, userID uuid.UUID) error

func (Database) UpdateUser

func (d Database) UpdateUser(ctx context.Context, user types.User) error

func (Database) UserExistsByID

func (d Database) UserExistsByID(ctx context.Context, ID uuid.UUID) (bool, error)

func (Database) UserScopeExists

func (d Database) UserScopeExists(ctx context.Context, userID uuid.UUID, role types.UserRole) (bool, error)

type DatabaseFace

type DatabaseFace interface {
	Begin(ctx context.Context) (DatabaseFace, error)
	driver.Tx

	AddAlbum(ctx context.Context, a types.Album, userID uuid.UUID) (uuid.UUID, error)
	AlbumExists(ctx context.Context, ID string) (bool, error)
	UpdateAlbum(ctx context.Context, a types.Album, userID uuid.UUID) error
	GetAlbumFromArtistAndName(ctx context.Context, artistName, albumName string) (album types.Album, err error)
	GetAlbumFromMbID(ctx context.Context, mbID string) (album types.Album, err error)
	GetAlbumFromID(ctx context.Context, id uuid.UUID) (album types.Album, err error)
	GetAlbumDetailed(ctx context.Context, albumID uuid.UUID) (album types.AlbumDetailed, err error)
	GetAlbumsByMbIDs(ctx context.Context, albumMbIds []string) ([]types.Album, error)
	ListAlbums(ctx context.Context) (albums []types.Album, err error)
	ListAlbumsByArtist(ctx context.Context, artistID uuid.UUID, sortBy SortBy, sortOrder SortOrder) (albums []types.AlbumDetailed, err error)
	ListFeaturedAlbumsByArtist(ctx context.Context, artistID uuid.UUID, sortBy SortBy, sortOrder SortOrder) (albums []types.AlbumDetailed, err error)
	ListUpdatedAlbums(ctx context.Context, since time.Time) (albumIDs []string, err error)
	CountAlbums(ctx context.Context) (int, error)
	CountAlbumsByArtist(ctx context.Context, artistID uuid.UUID) (int, error)

	AddArtist(ctx context.Context, a types.Artist, userID uuid.UUID) (uuid.UUID, error)
	ArtistExists(ctx context.Context, ID string) (bool, error)
	UpdateArtist(ctx context.Context, a types.Artist, userID uuid.UUID) error
	GetArtistFromID(ctx context.Context, id uuid.UUID) (artist types.Artist, err error)
	GetArtistFromMbID(ctx context.Context, mbID string) (artist types.Artist, err error)
	GetArtistFromName(ctx context.Context, name string) (artist types.Artist, err error)
	ListArtists(ctx context.Context, sortBy SortBy, sortOrder SortOrder) (artists []types.ArtistDetailed, err error)
	ListUpdatedArtists(ctx context.Context, since time.Time) (artistIDs []string, err error)
	ListArtistsWithoutMeta(ctx context.Context) (artists []types.Artist, err error)
	CountArtists(ctx context.Context) (int, error)

	AddTrack(ctx context.Context, t types.Track, userID uuid.UUID) (uuid.UUID, error)
	TrackExists(ctx context.Context, ID string) (bool, error)
	TrackExistsByNameAndAlbumID(ctx context.Context, title, albumID string) (bool, error)
	UpdateTrack(ctx context.Context, t types.Track, userID uuid.UUID) error
	GetTrackFromMbID(ctx context.Context, mbID string) (track types.Track, err error)
	GetTrackFromID(ctx context.Context, ID uuid.UUID) (track types.Track, err error)
	GetTrackDetailed(ctx context.Context, trackID, albumID, userID uuid.UUID) (track types.TrackDetailed, err error)
	GetTracksFromAlbumID(ctx context.Context, albumID uuid.UUID) (tracks []types.Track, err error)
	GetTracksDetailedFromArtistID(ctx context.Context, artistID, userID uuid.UUID, sortBy SortBy, sortOrder SortOrder, limit *int, includeMissingFiles bool) (tracks []types.TrackDetailed, err error)
	ListTracks(ctx context.Context) (tracks []types.Track, err error)
	ListAlbumTracksDetailed(ctx context.Context, albumID, userID uuid.UUID) (tracks []types.TrackDetailed, err error)
	GetTrackFromName(ctx context.Context, albumID uuid.UUID, trackName string) (track types.Track, err error)
	ListUpdatedTracks(ctx context.Context, since time.Time) (trackIDs []string, err error)
	CountTracks(ctx context.Context) (int, error)

	AddMediaFile(ctx context.Context, mf types.MediaFile, userID uuid.UUID) (uuid.UUID, error)
	GetMediaFile(ctx context.Context, id uuid.UUID) (mf types.MediaFile, err error)
	GetMediaFileFromChecksum(ctx context.Context, cs string) (mf types.MediaFile, err error)
	ListUpdatedMediaFiles(ctx context.Context, since time.Time) (mediaFileIDs []uuid.UUID, err error)
	MediaFileExists(ctx context.Context, ID uuid.UUID) (bool, error)
	UpdateMediaFile(ctx context.Context, mf types.MediaFile, userID uuid.UUID) error

	AddAlbumTrack(ctx context.Context, at types.AlbumTrack, userID uuid.UUID) (uuid.UUID, error)
	AlbumTrackExists(ctx context.Context, albumID uuid.UUID, trackID uuid.UUID) (bool, error)
	AlbumTrackExistsByPos(ctx context.Context, albumID uuid.UUID, discNumber, trackNumber int) (bool, error)
	AlbumTrackExistsByID(ctx context.Context, id uuid.UUID) (bool, error)
	ListUpdatedAlbumTracks(ctx context.Context, since time.Time) (albumTracks []uuid.UUID, err error)
	GetAlbumTrack(ctx context.Context, albumID uuid.UUID, discNumber, trackNumber int) (albumTrack types.AlbumTrack, err error)
	GetAlbumTrackByID(ctx context.Context, id uuid.UUID) (albumTrack types.AlbumTrack, err error)
	GetAlbumTrackFromAlbumAndTrack(ctx context.Context, albumID, trackID uuid.UUID) (albumTrack types.AlbumTrack, err error)
	ListAlbumTracksByTrackID(ctx context.Context, trackID uuid.UUID) (results []types.AlbumTrack, err error)
	UpdateAlbumTrack(ctx context.Context, at types.AlbumTrack, userID uuid.UUID) error
	CountTracksByArtist(ctx context.Context, artistID uuid.UUID) (int, error)
	ListTracksWithFilters(ctx context.Context, filter types.TrackFilter, page, limit int) (results []types.TrackDetailedNew, totalPages, totalItems int, err error)

	AddAlbumArtist(ctx context.Context, aa types.AlbumArtist, userID uuid.UUID) (uuid.UUID, error)
	AlbumArtistExistsByID(ctx context.Context, id uuid.UUID) (bool, error)
	AlbumArtistExists(ctx context.Context, id uuid.UUID, artistID uuid.UUID, role types.ArtistRole) (bool, error)
	ListUpdatedAlbumArtists(ctx context.Context, since time.Time) (albumArtists []uuid.UUID, err error)
	GetAlbumArtist(ctx context.Context, albumID, artistID uuid.UUID, role types.ArtistRole) (albumArtist types.AlbumArtist, err error)
	GetAlbumArtistByID(ctx context.Context, id uuid.UUID) (albumArtist types.AlbumArtist, err error)
	UpdateAlbumArtist(ctx context.Context, aa types.AlbumArtist, userID uuid.UUID) error
	ListAlbumArtistsByAlbumID(ctx context.Context, albumID uuid.UUID) (albumArtists []types.AlbumArtist, err error)
	DeleteAlbumArtist(ctx context.Context, id, userID uuid.UUID) error

	AddTrackArtist(ctx context.Context, ta types.TrackArtist, userID uuid.UUID) (uuid.UUID, error)
	DeleteTrackArtist(ctx context.Context, id, userID uuid.UUID) error
	GetTrackArtistByID(ctx context.Context, id uuid.UUID) (trackArtist types.TrackArtist, err error)
	ListTrackArtistsByTrackID(ctx context.Context, trackID uuid.UUID) (trackArtists []types.TrackArtist, err error)

	AddSync(ctx context.Context, s types.DBSyncState) (string, error)
	GetLastSync(ctx context.Context) (sync types.DBSyncState, err error)

	AddSyncItem(ctx context.Context, s types.SyncItem) (uuid.UUID, error)
	GetUnsyncedItem(ctx context.Context) (si types.SyncItem, err error)
	SetSyncItemState(ctx context.Context, id uuid.UUID, state types.SyncItemState) error

	AddPlayHistory(ctx context.Context, trackID, userID uuid.UUID) (string, error)
	AddPlayHistoryStruct(ctx context.Context, ph types.PlayHistory) (string, error)
	ListUpdatedPlayHistory(ctx context.Context, since time.Time) (updatedItems []types.PlayHistory, err error)

	ListEntityEvents(ctx context.Context, since time.Time) (events []types.EntityEvent, err error)
	ListEntityEventsByType(ctx context.Context, eventType types.EntityEventType, entityType types.EntityType, since time.Time) (ids []uuid.UUID, err error)
	ListEntityEventsByEntityType(ctx context.Context, entityType types.EntityType, since time.Time, userID *uuid.UUID) (ids []types.EntityEvent, err error)

	AddSearchItem(ctx context.Context, si types.SearchItem) error
	DeleteAllSearchItems(ctx context.Context) error
	SearchFull(ctx context.Context, searchTerm string, limit int) (results []types.SearchItem, err error)

	AddPlaylist(ctx context.Context, p types.Playlist, userID uuid.UUID) (uuid.UUID, error)
	AddSmartPlaylist(ctx context.Context, p types.SmartPlaylist, userID uuid.UUID) (uuid.UUID, error)
	AddSmartPlaylistArtist(ctx context.Context, a types.SmartPlaylistArtist, userID uuid.UUID) (uuid.UUID, error)
	AddSmartPlaylistContent(ctx context.Context, c types.SmartPlaylistContent, userID uuid.UUID) (uuid.UUID, error)
	AddPlaylistTrack(ctx context.Context, p types.PlaylistTrack, userID uuid.UUID) (uuid.UUID, error)
	CountPlaylists(ctx context.Context, userID uuid.UUID) (int, error)
	CountPlaylistTracks(ctx context.Context, playlistID uuid.UUID) (int, error)
	DeletePlaylist(ctx context.Context, id, userID uuid.UUID) error
	DeletePlaylistTrack(ctx context.Context, id, userID uuid.UUID) error
	GetPlaylist(ctx context.Context, ID, userID uuid.UUID) (plist types.Playlist, err error)
	GetPlaylistTrack(ctx context.Context, id uuid.UUID) (plistTrack types.PlaylistTrack, err error)
	GetPlaylistTrackByPlaylistAndAlbumTrack(ctx context.Context, playlistID, albumTrackID uuid.UUID) (plistTrack types.PlaylistTrack, err error)
	GetSmartPlaylistArtist(ctx context.Context, id, userID uuid.UUID) (artist types.SmartPlaylistArtist, err error)
	GetSmartPlaylistContent(ctx context.Context, id, userID uuid.UUID) (content types.SmartPlaylistContent, err error)
	ListPlaylists(ctx context.Context, userID uuid.UUID, includePublic bool, sortBy SortBy, sortOrder SortOrder) (playlists []types.Playlist, err error)
	ListPlaylistTracks(ctx context.Context, playlistID, userID uuid.UUID) (tracks []types.TrackDetailed, err error)
	ListUpdatedPlaylists(ctx context.Context, since time.Time, userID uuid.UUID) (plists []uuid.UUID, err error)
	ListUpdatedPlaylistTracks(ctx context.Context, since time.Time, userID uuid.UUID) (plists []uuid.UUID, err error)
	PlaylistExistsByID(ctx context.Context, id uuid.UUID) (bool, error)
	PlaylistTrackExists(ctx context.Context, id uuid.UUID) (bool, error)
	UpdatePlaylist(ctx context.Context, plist types.Playlist, userID uuid.UUID) error

	AddRating(ctx context.Context, r types.Rating) (uuid.UUID, error)
	GetRating(ctx context.Context, id uuid.UUID) (rating types.Rating, err error)
	GetRatingID(ctx context.Context, trackID, userID uuid.UUID) (id uuid.UUID, found bool, err error)
	GetTrackRatings(ctx context.Context, trackID uuid.UUID) (ratings []types.Rating, err error)
	UpdateRating(ctx context.Context, id uuid.UUID, rating int, userID uuid.UUID) error

	AddLike(ctx context.Context, l types.Like) (uuid.UUID, error)
	DeleteLike(ctx context.Context, id, userID uuid.UUID) error
	GetLike(ctx context.Context, id, userID uuid.UUID) (like types.Like, err error)
	GetLikeID(ctx context.Context, trackID, userID uuid.UUID) (uuid.UUID, error)
	HasLike(ctx context.Context, trackID, userID uuid.UUID) (bool, error)
	ListLikedTracksDetailed(ctx context.Context, userID uuid.UUID) (tracks []types.TrackDetailed, err error)

	AddTrackAnalysis(ctx context.Context, ta types.TrackAnalysis, userID uuid.UUID) error
	GetTrackAnalysisByID(ctx context.Context, id uuid.UUID) (trackAnalysis types.TrackAnalysis, err error)
	GetUnanalysedTrack(ctx context.Context) (id uuid.UUID, found bool, err error)

	AuthFace
	ImportFace
	DeviceFace
}

type DeviceFace

type DeviceFace interface {
	AddDevice(ctx context.Context, device types.Device) error
	DeviceExists(ctx context.Context, deviceID uuid.UUID) (bool, error)
	GetDevice(ctx context.Context, deviceID uuid.UUID) (types.Device, error)
	GetDeviceFromTokenID(ctx context.Context, tokenID uuid.UUID) (types.Device, error)
	GetDeviceFromTokenAndDeviceID(ctx context.Context, deviceID, tokenID uuid.UUID) (device types.Device, err error)
	GetDeviceTokenFromDeviceID(ctx context.Context, deviceID uuid.UUID) (types.DeviceToken, error)
	DeleteDevice(ctx context.Context, id uuid.UUID) error
	ListUsersDevices(ctx context.Context, userID uuid.UUID) (devices []types.Device, err error)
	LinkDeviceToken(ctx context.Context, deviceID, tokenID uuid.UUID) error
	UpdateDevice(ctx context.Context, device types.Device) error
	UpdateDeviceLastSeen(ctx context.Context, ipAddress string, deviceID uuid.UUID) error
	// contains filtered or unexported methods
}

type ImportFace

type ImportFace interface {
	Begin(ctx context.Context) (DatabaseFace, error)
	driver.Tx

	AddImport(ctx context.Context, i types.Import) (uuid.UUID, error)
	GetUnclaimedImport(ctx context.Context) (i types.Import, found bool, err error)
	ListImports(ctx context.Context, page, limit int) (i []types.Import, totalPages, totalItems int, err error)
	SetImportState(ctx context.Context, id uuid.UUID, state types.ImportState) error
}

type SortBy

type SortBy string

type SortOrder

type SortOrder string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL