Introduce models.Entity type

This commit is contained in:
Philipp Wolfer 2023-12-10 14:22:38 +01:00
parent a59a542967
commit c4587b80af
No known key found for this signature in database
GPG key ID: 8FDF744D4919943B
6 changed files with 18 additions and 9 deletions

View file

@ -76,7 +76,7 @@ func TestGetBackends(t *testing.T) {
}
// If we got here the "dump" backend was not included
t.Errorf("GetBackends() did not return expected bacend \"dump\"")
t.Errorf("GetBackends() did not return expected backend \"dump\"")
}
func TestImplementsInterfaces(t *testing.T) {

View file

@ -38,7 +38,7 @@ func NewTransferCmd[
](
cmd *cobra.Command,
db *storage.Database,
entity string,
entity models.Entity,
source string,
target string,
) (TransferCmd[E, I, R], error) {
@ -57,7 +57,7 @@ func NewTransferCmd[
type TransferCmd[E models.Backend, I models.ImportBackend, R models.ListensResult | models.LovesResult] struct {
cmd *cobra.Command
db *storage.Database
entity string
entity models.Entity
sourceName string
targetName string
ExpBackend E

View file

@ -27,6 +27,12 @@ import (
)
type MBID string
type Entity string
const (
Listens Entity = "listens"
Loves Entity = "loves"
)
type AdditionalInfo map[string]any

View file

@ -24,6 +24,7 @@ import (
"time"
"github.com/glebarez/sqlite"
"go.uploadedlobster.com/scotty/internal/models"
"golang.org/x/oauth2"
"gorm.io/datatypes"
"gorm.io/gorm"
@ -54,7 +55,7 @@ func New(dsn string) (db Database, err error) {
return
}
func (db Database) GetImportTimestamp(source string, target string, entity string) (time.Time, error) {
func (db Database) GetImportTimestamp(source string, target string, entity models.Entity) (time.Time, error) {
result := ImportTimestamp{
SourceService: source,
TargetService: target,
@ -64,7 +65,7 @@ func (db Database) GetImportTimestamp(source string, target string, entity strin
return result.Timestamp, err
}
func (db Database) SetImportTimestamp(source string, target string, entity string, timestamp time.Time) error {
func (db Database) SetImportTimestamp(source string, target string, entity models.Entity, timestamp time.Time) error {
entry := ImportTimestamp{
SourceService: source,
TargetService: target,

View file

@ -23,6 +23,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.uploadedlobster.com/scotty/internal/models"
"go.uploadedlobster.com/scotty/internal/storage"
"golang.org/x/oauth2"
)
@ -33,7 +34,7 @@ func TestTimestampUpdate(t *testing.T) {
source := "maloja"
target := "funkwhale"
entity := "loves"
entity := models.Loves
timestamp, err := db.GetImportTimestamp(source, target, entity)
require.NoError(t, err)
assert.Equal(t, time.Time{}, timestamp)

View file

@ -20,13 +20,14 @@ package storage
import (
"time"
"go.uploadedlobster.com/scotty/internal/models"
"gorm.io/datatypes"
)
type ImportTimestamp struct {
SourceService string `gorm:"primaryKey"`
TargetService string `gorm:"primaryKey"`
Entity string `gorm:"primaryKey"`
SourceService string `gorm:"primaryKey"`
TargetService string `gorm:"primaryKey"`
Entity models.Entity `gorm:"primaryKey"`
CreatedAt time.Time
UpdatedAt time.Time
Timestamp time.Time `gorm:"default:'1970-01-01T00:00:00'"`