Enha: journal repo [wip]
This commit is contained in:
		| @@ -3,10 +3,33 @@ package repos | ||||
| import ( | ||||
| 	"context" | ||||
| 	"gralias/models" | ||||
|  | ||||
| 	"github.com/jmoiron/sqlx" | ||||
| ) | ||||
|  | ||||
| type JournalRepo interface { | ||||
| 	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 | ||||
| } | ||||
|  | ||||
| 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
	 Grail Finder
					Grail Finder