mirror of
https://git.sr.ht/~phw/scotty
synced 2025-04-18 11:09:29 +02:00
Introduce models.Entity type
This commit is contained in:
parent
a59a542967
commit
c4587b80af
6 changed files with 18 additions and 9 deletions
|
@ -76,7 +76,7 @@ func TestGetBackends(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we got here the "dump" backend was not included
|
// 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) {
|
func TestImplementsInterfaces(t *testing.T) {
|
||||||
|
|
|
@ -38,7 +38,7 @@ func NewTransferCmd[
|
||||||
](
|
](
|
||||||
cmd *cobra.Command,
|
cmd *cobra.Command,
|
||||||
db *storage.Database,
|
db *storage.Database,
|
||||||
entity string,
|
entity models.Entity,
|
||||||
source string,
|
source string,
|
||||||
target string,
|
target string,
|
||||||
) (TransferCmd[E, I, R], error) {
|
) (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 {
|
type TransferCmd[E models.Backend, I models.ImportBackend, R models.ListensResult | models.LovesResult] struct {
|
||||||
cmd *cobra.Command
|
cmd *cobra.Command
|
||||||
db *storage.Database
|
db *storage.Database
|
||||||
entity string
|
entity models.Entity
|
||||||
sourceName string
|
sourceName string
|
||||||
targetName string
|
targetName string
|
||||||
ExpBackend E
|
ExpBackend E
|
||||||
|
|
|
@ -27,6 +27,12 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type MBID string
|
type MBID string
|
||||||
|
type Entity string
|
||||||
|
|
||||||
|
const (
|
||||||
|
Listens Entity = "listens"
|
||||||
|
Loves Entity = "loves"
|
||||||
|
)
|
||||||
|
|
||||||
type AdditionalInfo map[string]any
|
type AdditionalInfo map[string]any
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/glebarez/sqlite"
|
"github.com/glebarez/sqlite"
|
||||||
|
"go.uploadedlobster.com/scotty/internal/models"
|
||||||
"golang.org/x/oauth2"
|
"golang.org/x/oauth2"
|
||||||
"gorm.io/datatypes"
|
"gorm.io/datatypes"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
|
@ -54,7 +55,7 @@ func New(dsn string) (db Database, err error) {
|
||||||
return
|
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{
|
result := ImportTimestamp{
|
||||||
SourceService: source,
|
SourceService: source,
|
||||||
TargetService: target,
|
TargetService: target,
|
||||||
|
@ -64,7 +65,7 @@ func (db Database) GetImportTimestamp(source string, target string, entity strin
|
||||||
return result.Timestamp, err
|
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{
|
entry := ImportTimestamp{
|
||||||
SourceService: source,
|
SourceService: source,
|
||||||
TargetService: target,
|
TargetService: target,
|
||||||
|
|
|
@ -23,6 +23,7 @@ import (
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
"go.uploadedlobster.com/scotty/internal/models"
|
||||||
"go.uploadedlobster.com/scotty/internal/storage"
|
"go.uploadedlobster.com/scotty/internal/storage"
|
||||||
"golang.org/x/oauth2"
|
"golang.org/x/oauth2"
|
||||||
)
|
)
|
||||||
|
@ -33,7 +34,7 @@ func TestTimestampUpdate(t *testing.T) {
|
||||||
|
|
||||||
source := "maloja"
|
source := "maloja"
|
||||||
target := "funkwhale"
|
target := "funkwhale"
|
||||||
entity := "loves"
|
entity := models.Loves
|
||||||
timestamp, err := db.GetImportTimestamp(source, target, entity)
|
timestamp, err := db.GetImportTimestamp(source, target, entity)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, time.Time{}, timestamp)
|
assert.Equal(t, time.Time{}, timestamp)
|
||||||
|
|
|
@ -20,13 +20,14 @@ package storage
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"go.uploadedlobster.com/scotty/internal/models"
|
||||||
"gorm.io/datatypes"
|
"gorm.io/datatypes"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ImportTimestamp struct {
|
type ImportTimestamp struct {
|
||||||
SourceService string `gorm:"primaryKey"`
|
SourceService string `gorm:"primaryKey"`
|
||||||
TargetService string `gorm:"primaryKey"`
|
TargetService string `gorm:"primaryKey"`
|
||||||
Entity string `gorm:"primaryKey"`
|
Entity models.Entity `gorm:"primaryKey"`
|
||||||
CreatedAt time.Time
|
CreatedAt time.Time
|
||||||
UpdatedAt time.Time
|
UpdatedAt time.Time
|
||||||
Timestamp time.Time `gorm:"default:'1970-01-01T00:00:00'"`
|
Timestamp time.Time `gorm:"default:'1970-01-01T00:00:00'"`
|
||||||
|
|
Loading…
Add table
Reference in a new issue