68 lines
1.7 KiB
Go
68 lines
1.7 KiB
Go
|
package infra
|
||
|
|
||
|
import (
|
||
|
"owl-blogs/app"
|
||
|
"owl-blogs/app/repository"
|
||
|
"owl-blogs/domain/model"
|
||
|
|
||
|
"github.com/jmoiron/sqlx"
|
||
|
)
|
||
|
|
||
|
type sqlInteraction struct {
|
||
|
Id string `db:"id"`
|
||
|
Type string `db:"type"`
|
||
|
EntryId string `db:"entry_id"`
|
||
|
CreatedAt string `db:"created_at"`
|
||
|
MetaData string `db:"meta_data"`
|
||
|
}
|
||
|
|
||
|
type DefaultInteractionRepo struct {
|
||
|
typeRegistry *app.InteractionTypeRegistry
|
||
|
db *sqlx.DB
|
||
|
}
|
||
|
|
||
|
func NewInteractionRepo(db Database, register *app.InteractionTypeRegistry) repository.InteractionRepository {
|
||
|
sqlxdb := db.Get()
|
||
|
|
||
|
// Create tables if not exists
|
||
|
sqlxdb.MustExec(`
|
||
|
CREATE TABLE IF NOT EXISTS interactions (
|
||
|
id TEXT PRIMARY KEY,
|
||
|
type TEXT NOT NULL,
|
||
|
entry_id TEXT NOT NULL,
|
||
|
created_at DATETIME NOT NULL,
|
||
|
meta_data TEXT NOT NULL
|
||
|
);
|
||
|
`)
|
||
|
|
||
|
return &DefaultInteractionRepo{
|
||
|
db: sqlxdb,
|
||
|
typeRegistry: register,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Create implements repository.InteractionRepository.
|
||
|
func (*DefaultInteractionRepo) Create(interaction model.Interaction) error {
|
||
|
panic("unimplemented")
|
||
|
}
|
||
|
|
||
|
// Delete implements repository.InteractionRepository.
|
||
|
func (*DefaultInteractionRepo) Delete(interaction model.Interaction) error {
|
||
|
panic("unimplemented")
|
||
|
}
|
||
|
|
||
|
// FindAll implements repository.InteractionRepository.
|
||
|
func (*DefaultInteractionRepo) FindAll(entryId string) ([]model.Interaction, error) {
|
||
|
panic("unimplemented")
|
||
|
}
|
||
|
|
||
|
// FindById implements repository.InteractionRepository.
|
||
|
func (*DefaultInteractionRepo) FindById(id string) (model.Interaction, error) {
|
||
|
panic("unimplemented")
|
||
|
}
|
||
|
|
||
|
// Update implements repository.InteractionRepository.
|
||
|
func (*DefaultInteractionRepo) Update(interaction model.Interaction) error {
|
||
|
panic("unimplemented")
|
||
|
}
|