Skip to content

Commit 2d07169

Browse files
committed
addrole and lookup guild by id
1 parent bae4269 commit 2d07169

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

pkgs/server/sqlite.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ type CommandsTableRow struct {
3737

3838
var CmdsCache = cache.New()
3939
var RolesCache = cache.New()
40+
var GuildMetaCache = cache.New()
4041

4142
func NewDB(cfg *config.Config) (*sql.DB, error) {
4243
db, err := sql.Open("sqlite3", cfg.DBPath)
@@ -253,3 +254,35 @@ func GetRolebyGuildid(db *sql.DB, guildid int64) ([]string, error) {
253254
RolesCache.Set(fmt.Sprintf("%d", guildid), roles, 90*time.Minute)
254255
return roles, nil
255256
}
257+
258+
// Add row to Roles table
259+
func AddRole(db *sql.DB, guildid int64, roleid string) error {
260+
sql := `INSERT INTO ApprovedRoles (guildid, roleid) VALUES (?, ?)`
261+
_, err := db.Exec(sql, guildid, roleid)
262+
if err != nil {
263+
return fmt.Errorf("Error adding role: %v", err)
264+
}
265+
266+
log.Printf("Added role %s to guild %d", roleid, guildid)
267+
return nil
268+
}
269+
270+
// Lookup guild from guildid
271+
func LookupGuild(db *sql.DB, guildid int64) (*GuildMetaRow, error) {
272+
// Check GuildMetaCache by guildid
273+
if val, ok := GuildMetaCache.Get(fmt.Sprintf("%d", guildid)); ok {
274+
return val.(*GuildMetaRow), nil
275+
}
276+
sqlselect := `SELECT guildid, source, name, owner, textchan FROM GuildMetadata WHERE guildid = ?`
277+
row := db.QueryRow(sqlselect, guildid)
278+
guild := &GuildMetaRow{}
279+
if err := row.Scan(&guild.Guildid, &guild.Source, &guild.Name, &guild.Owner, &guild.Textchan); err != nil {
280+
if err == sql.ErrNoRows {
281+
return nil, nil
282+
}
283+
return nil, err
284+
}
285+
286+
GuildMetaCache.Set(fmt.Sprintf("%d", guildid), guild, 45*time.Minute)
287+
return guild, nil
288+
}

0 commit comments

Comments
 (0)