Enha: journal repo [wip]
This commit is contained in:
@ -3,10 +3,33 @@ package repos
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"gralias/models"
|
"gralias/models"
|
||||||
|
|
||||||
|
"github.com/jmoiron/sqlx"
|
||||||
)
|
)
|
||||||
|
|
||||||
type JournalRepo interface {
|
type JournalRepo interface {
|
||||||
JournalByRoomID(ctx context.Context, roomID string) ([]models.Journal, error)
|
JournalByRoomID(ctx context.Context, roomID string) ([]models.Journal, error)
|
||||||
JournalCreate(ctx context.Context, action *models.Journal) error
|
JournalCreate(ctx context.Context, j *models.Journal) error
|
||||||
JournalDeleteByRoomID(ctx context.Context, roomID string) error
|
JournalDeleteByRoomID(ctx context.Context, roomID string) error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *RepoProvider) JournalByRoomID(ctx context.Context, roomID string) ([]models.Journal, error) {
|
||||||
|
journals := []models.Journal{}
|
||||||
|
err := sqlx.SelectContext(ctx, p.DB, &journals, `SELECT id, created_at, entry, username, room_id FROM journal WHERE room_id = ? ORDER BY created_at ASC`, roomID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return journals, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *RepoProvider) JournalCreate(ctx context.Context, j *models.Journal) error {
|
||||||
|
db := getDB(ctx, p.DB)
|
||||||
|
_, err := db.ExecContext(ctx, `INSERT INTO journal (entry, username, room_id) VALUES (?, ?, ?)`, j.Entry, j.Username, j.RoomID)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *RepoProvider) JournalDeleteByRoomID(ctx context.Context, roomID string) error {
|
||||||
|
db := getDB(ctx, p.DB)
|
||||||
|
_, err := db.ExecContext(ctx, `DELETE FROM journal WHERE room_id = ?`, roomID)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user