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
	 Grail Finder
					Grail Finder