You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.3 KiB
66 lines
1.3 KiB
package postgres
|
|
|
|
import (
|
|
"database/sql"
|
|
|
|
"github.com/dustinpianalto/goff"
|
|
)
|
|
|
|
type GuildService struct {
|
|
DB *sql.DB
|
|
}
|
|
|
|
func (s *GuildService) Guild(id string) (*goff.Guild, error) {
|
|
var g goff.Guild
|
|
queryString := `SELECT id, welcome_message, goodbye_message,
|
|
logging_channel, welcome_channel, puzzle_channel, puzzle_role
|
|
FROM guilds
|
|
WHERE id = $1`
|
|
row := s.DB.QueryRow(queryString, id)
|
|
err := row.Scan(
|
|
&g.ID,
|
|
&g.WelcomeMessage,
|
|
&g.GoodbyeMessage,
|
|
&g.LoggingChannel,
|
|
&g.WelcomeChannel,
|
|
&g.PuzzleChannel,
|
|
&g.PuzzleRole,
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var prefixes []string
|
|
queryString = `SELECT p.prefix
|
|
FROM prefixes p, x_guilds_prefixes xgp
|
|
WHERE p.id = xgp.prefix_id AND xgp.guild_id = $1`
|
|
rows, err := s.DB.Query(queryString, id)
|
|
if err == nil {
|
|
for rows.Next() {
|
|
var prefix string
|
|
err = rows.Scan(&prefix)
|
|
if err != nil {
|
|
continue
|
|
}
|
|
prefixes = append(prefixes, prefix)
|
|
}
|
|
}
|
|
g.Prefixes = prefixes
|
|
return &g, nil
|
|
}
|
|
|
|
func (s *GuildService) CreateGuild(g *goff.Guild) error {
|
|
return nil
|
|
}
|
|
|
|
func (s *GuildService) DeleteGuild(g *goff.Guild) error {
|
|
return nil
|
|
}
|
|
|
|
func (s *GuildService) GuildUsers(g *goff.Guild) ([]*goff.User, error) {
|
|
return []*goff.User{}, nil
|
|
}
|
|
|
|
func (s *GuildService) UpdateGuild(g *goff.Guild) error {
|
|
return nil
|
|
}
|