feat(guilddb,sqlite): channels storage

This commit is contained in:
Gustavo "Guz" L. de Mello
2024-08-08 20:28:19 -03:00
parent 5011d35380
commit 787d3640df
2 changed files with 24 additions and 0 deletions

View File

@@ -32,4 +32,5 @@ type GuildDB interface {
var ErrNoAffect = errors.New("Not able to affect anything in the database")
var ErrNoMessages = errors.New("Messages not found in database")
var ErrNoChannels = errors.New("Channels not found in database")
var ErrInternal = errors.New("Internal error while trying to use database")

View File

@@ -146,3 +146,26 @@ func (db *SQLiteDB) selectMessages(query string, args ...any) ([]Message, error)
}
return ms, err
}
func (db *SQLiteDB) Channel(channelID string) (Channel, error) {
return db.selectChannel(`
SELECT (ID, Language) FROM guild-v1.channels
WHERE "ID" = $1
`, channelID)
}
func (db *SQLiteDB) ChannelInsert(c Channel) error {
r, err := db.sql.Exec(`
INSERT INTO guild-v1.channels (ID, Language)
VALUES ($1, $2)
`, c.ID, c.Language)
if err != nil {
return errors.Join(ErrInternal, err)
} else if rows, _ := r.RowsAffected(); rows == 0 {
return ErrNoAffect
}
return nil
}