Fix nullability of columns

development
DustyP 5 years ago
parent 7a8e7bf213
commit 580eea3dfa

@ -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

@ -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…
Cancel
Save