Fix nullability of columns
This commit is contained in:
parent
7a8e7bf213
commit
580eea3dfa
4
guild.go
4
guild.go
@ -1,8 +1,10 @@
|
||||
package geeksbot
|
||||
|
||||
import "database/sql"
|
||||
|
||||
type Guild struct {
|
||||
ID string
|
||||
NewPatronMessage string
|
||||
NewPatronMessage sql.NullString
|
||||
Prefixes []string
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,45 @@
|
||||
BEGIN;
|
||||
ALTER TABLE users
|
||||
ALTER COLUMN active DROP NOT NULL,
|
||||
ALTER COLUMN staff DROP NOT NULL,
|
||||
ALTER COLUMN admin DROP NOT NULL;
|
||||
ALTER TABLE channels
|
||||
ALTER COLUMN guild_id DROP NOT NULL,
|
||||
ALTER COLUMN admin DROP NOT NULL,
|
||||
ALTER COLUMN default_channel DROP NOT NULL,
|
||||
ALTER COLUMN new_patron DROP NOT NULL;
|
||||
ALTER TABLE messages
|
||||
ALTER COLUMN created_at DROP NOT NULL,
|
||||
ALTER COLUMN content DROP NOT NULL,
|
||||
ALTER COLUMN channel_id DROP NOT NULL,
|
||||
ALTER COLUMN author_id DROP NOT NULL,
|
||||
ADD COLUMN embed json,
|
||||
ADD COLUMN previous_embeds json[];
|
||||
ALTER TABLE patreon_creators
|
||||
RENAME TO patreon_creator,
|
||||
ALTER COLUMN creator DROP NOT NULL,
|
||||
ALTER COLUMN link DROP NOT NULL,
|
||||
ALTER COLUMN guild_id DROP NOT NULL;
|
||||
ALTER TABLE patreon_tiers
|
||||
RENAME TO patreon_tier,
|
||||
ALTER COLUMN name DROP NOT NULL,
|
||||
ALTER COLUMN creator DROP NOT NULL,
|
||||
ALTER COLUMN role DROP NOT NULL;
|
||||
ALTER TABLE requests
|
||||
ALTER COLUMN author_id DROP NOT NULL,
|
||||
ALTER COLUMN channel_id DROP NOT NULL,
|
||||
ALTER COLUMN content DROP NOT NULL,
|
||||
ALTER COLUMN requested_at DROP NOT NULL,
|
||||
ALTER COLUMN completed DROP NOT NULL,
|
||||
ALTER COLUMN message_id DROP NOT NULL,
|
||||
ALTER COLUMN guild_id DROP NOT NULL;
|
||||
ALTER TABLE roles
|
||||
ALTER COLUMN role_type DROP NOT NULL,
|
||||
ALTER COLUMN guild_id DROP NOT NULL;
|
||||
ALTER TABLE servers
|
||||
ALTER COLUMN name DROP NOT NULL,
|
||||
ALTER COLUMN ip_address DROP NOT NULL,
|
||||
ALTER COLUMN port DROP NOT NULL,
|
||||
ALTER COLUMN password DROP NOT NULL,
|
||||
ALTER COLUMN guild_id DROP NOT NULL;
|
||||
COMMIT;
|
||||
@ -0,0 +1,45 @@
|
||||
BEGIN;
|
||||
ALTER TABLE users
|
||||
ALTER COLUMN active SET NOT NULL,
|
||||
ALTER COLUMN staff SET NOT NULL,
|
||||
ALTER COLUMN admin SET NOT NULL;
|
||||
ALTER TABLE channels
|
||||
ALTER COLUMN guild_id SET NOT NULL,
|
||||
ALTER COLUMN admin SET NOT NULL,
|
||||
ALTER COLUMN default_channel SET NOT NULL,
|
||||
ALTER COLUMN new_patron SET NOT NULL;
|
||||
ALTER TABLE messages
|
||||
ALTER COLUMN created_at SET NOT NULL,
|
||||
ALTER COLUMN content SET NOT NULL,
|
||||
ALTER COLUMN channel_id SET NOT NULL,
|
||||
ALTER COLUMN author_id SET NOT NULL,
|
||||
DROP COLUMN embed,
|
||||
DROP COLUMN previous_embeds;
|
||||
ALTER TABLE patreon_creator
|
||||
RENAME TO patreon_creators,
|
||||
ALTER COLUMN creator SET NOT NULL,
|
||||
ALTER COLUMN link SET NOT NULL,
|
||||
ALTER COLUMN guild_id SET NOT NULL;
|
||||
ALTER TABLE patreon_tier
|
||||
RENAME TO patreon_tiers,
|
||||
ALTER COLUMN name SET NOT NULL,
|
||||
ALTER COLUMN creator SET NOT NULL,
|
||||
ALTER COLUMN role SET NOT NULL;
|
||||
ALTER TABLE requests
|
||||
ALTER COLUMN author_id SET NOT NULL,
|
||||
ALTER COLUMN channel_id SET NOT NULL,
|
||||
ALTER COLUMN content SET NOT NULL,
|
||||
ALTER COLUMN requested_at SET NOT NULL,
|
||||
ALTER COLUMN completed SET NOT NULL,
|
||||
ALTER COLUMN message_id SET NOT NULL,
|
||||
ALTER COLUMN guild_id SET NOT NULL;
|
||||
ALTER TABLE roles
|
||||
ALTER COLUMN role_type SET NOT NULL,
|
||||
ALTER COLUMN guild_id SET NOT NULL;
|
||||
ALTER TABLE servers
|
||||
ALTER COLUMN name SET NOT NULL,
|
||||
ALTER COLUMN ip_address SET NOT NULL,
|
||||
ALTER COLUMN port SET NOT NULL,
|
||||
ALTER COLUMN password SET NOT NULL,
|
||||
ALTER COLUMN guild_id SET NOT NULL;
|
||||
COMMIT;
|
||||
@ -16,7 +16,7 @@ func (s requestService) Request(id int64) (geeksbot.Request, error) {
|
||||
var aID string
|
||||
var cID string
|
||||
var gID string
|
||||
var uID string
|
||||
var uID sql.NullString
|
||||
var mID string
|
||||
queryString := `SELECT id, author_id, channel_id, guild_id, content, requested_at, completed,
|
||||
completed_at, completed_by, message_id, completed_message
|
||||
@ -39,10 +39,15 @@ func (s requestService) Request(id int64) (geeksbot.Request, error) {
|
||||
if err != nil {
|
||||
return geeksbot.Request{}, err
|
||||
}
|
||||
completedBy, err := UserService.User(uID)
|
||||
if !uID.Valid {
|
||||
r.CompletedBy = nil
|
||||
} else {
|
||||
completedBy, err := UserService.User(uID.String)
|
||||
if err != nil {
|
||||
return geeksbot.Request{}, err
|
||||
}
|
||||
r.CompletedBy = &completedBy
|
||||
}
|
||||
message, err := MessageService.Message(mID)
|
||||
if err != nil {
|
||||
return geeksbot.Request{}, err
|
||||
@ -50,7 +55,6 @@ func (s requestService) Request(id int64) (geeksbot.Request, error) {
|
||||
r.Author = author
|
||||
r.Guild = guild
|
||||
r.Channel = channel
|
||||
r.CompletedBy = completedBy
|
||||
r.Message = message
|
||||
return r, nil
|
||||
}
|
||||
|
||||
@ -14,10 +14,10 @@ type serverService struct {
|
||||
func (s serverService) ServerByID(id int) (geeksbot.Server, error) {
|
||||
var server geeksbot.Server
|
||||
var guildID string
|
||||
var aChanID string
|
||||
var iChanID string
|
||||
var iMsgID string
|
||||
var sMsgID string
|
||||
var aChanID sql.NullString
|
||||
var iChanID sql.NullString
|
||||
var iMsgID sql.NullString
|
||||
var sMsgID sql.NullString
|
||||
queryString := `SELECT id, name, ip_address, port, password, alerts_channel_id,
|
||||
guild_id, info_channel_id, info_message_id, settings_message_id
|
||||
FROM servers WHERE id = $1`
|
||||
@ -31,27 +31,43 @@ func (s serverService) ServerByID(id int) (geeksbot.Server, error) {
|
||||
if err != nil {
|
||||
return geeksbot.Server{}, err
|
||||
}
|
||||
alertChannel, err := ChannelService.Channel(aChanID)
|
||||
if !aChanID.Valid {
|
||||
server.AlertsChannel = nil
|
||||
} else {
|
||||
alertChannel, err := ChannelService.Channel(aChanID.String)
|
||||
if err != nil {
|
||||
return geeksbot.Server{}, err
|
||||
}
|
||||
infoChannel, err := ChannelService.Channel(iChanID)
|
||||
server.AlertsChannel = &alertChannel
|
||||
}
|
||||
if !iChanID.Valid {
|
||||
server.InfoChannel = nil
|
||||
} else {
|
||||
infoChannel, err := ChannelService.Channel(iChanID.String)
|
||||
if err != nil {
|
||||
return geeksbot.Server{}, err
|
||||
}
|
||||
infoMessage, err := MessageService.Message(iMsgID)
|
||||
server.InfoChannel = &infoChannel
|
||||
}
|
||||
if !iMsgID.Valid {
|
||||
server.InfoMessage = nil
|
||||
} else {
|
||||
infoMessage, err := MessageService.Message(iMsgID.String)
|
||||
if err != nil {
|
||||
return geeksbot.Server{}, err
|
||||
}
|
||||
settingsMessage, err := MessageService.Message(sMsgID)
|
||||
server.InfoMessage = &infoMessage
|
||||
}
|
||||
if !sMsgID.Valid {
|
||||
server.SettingsMessage = nil
|
||||
} else {
|
||||
settingsMessage, err := MessageService.Message(sMsgID.String)
|
||||
if err != nil {
|
||||
return geeksbot.Server{}, err
|
||||
}
|
||||
server.SettingsMessage = &settingsMessage
|
||||
}
|
||||
server.Guild = guild
|
||||
server.AlertsChannel = alertChannel
|
||||
server.InfoChannel = infoChannel
|
||||
server.InfoMessage = infoMessage
|
||||
server.SettingsMessage = settingsMessage
|
||||
return server, nil
|
||||
}
|
||||
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
package geeksbot
|
||||
|
||||
import "database/sql"
|
||||
|
||||
type Message struct {
|
||||
ID string
|
||||
CreatedAt int64
|
||||
ModifiedAt int64
|
||||
ModifiedAt sql.NullTime
|
||||
Content string
|
||||
PreviousContent []string
|
||||
Channel Channel
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package geeksbot
|
||||
|
||||
import "database/sql"
|
||||
|
||||
type PatreonCreator struct {
|
||||
ID int
|
||||
Creator string
|
||||
@ -10,7 +12,7 @@ type PatreonCreator struct {
|
||||
type PatreonTier struct {
|
||||
ID int
|
||||
Name string
|
||||
Description string
|
||||
Description sql.NullString
|
||||
Creator PatreonCreator
|
||||
Role Role
|
||||
NextTier *PatreonTier
|
||||
|
||||
11
request.go
11
request.go
@ -1,6 +1,9 @@
|
||||
package geeksbot
|
||||
|
||||
import "time"
|
||||
import (
|
||||
"database/sql"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Request struct {
|
||||
ID int64
|
||||
@ -10,10 +13,10 @@ type Request struct {
|
||||
Content string
|
||||
RequestedAt time.Time
|
||||
Completed bool
|
||||
CompletedAt time.Time
|
||||
CompletedBy User
|
||||
CompletedAt sql.NullTime
|
||||
CompletedBy *User
|
||||
Message Message
|
||||
CompletedMessage string
|
||||
CompletedMessage sql.NullString
|
||||
}
|
||||
|
||||
type Comment struct {
|
||||
|
||||
@ -6,11 +6,11 @@ type Server struct {
|
||||
IPAddr string
|
||||
Port int
|
||||
Password string
|
||||
AlertsChannel Channel
|
||||
AlertsChannel *Channel
|
||||
Guild Guild
|
||||
InfoChannel Channel
|
||||
InfoMessage Message
|
||||
SettingsMessage Message
|
||||
InfoChannel *Channel
|
||||
InfoMessage *Message
|
||||
SettingsMessage *Message
|
||||
}
|
||||
|
||||
type ServerService interface {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user