diff --git a/contrib/znc-import/main.go b/contrib/znc-import/main.go index b5f4adc..0a72cd7 100644 --- a/contrib/znc-import/main.go +++ b/contrib/znc-import/main.go @@ -175,7 +175,8 @@ func main() { if ok { logger.Printf("updating existing network") } else { - n = &database.Network{Name: netName} + n = database.NewNetwork("") + n.Name = netName logger.Printf("creating new network") } diff --git a/database/database.go b/database/database.go index 44fa60e..5a6e8d8 100644 --- a/database/database.go +++ b/database/database.go @@ -161,6 +161,13 @@ type Network struct { Enabled bool } +func NewNetwork(addr string) *Network { + return &Network{ + Addr: addr, + Enabled: true, + } +} + func (net *Network) GetName() string { if net.Name != "" { return net.Name diff --git a/downstream.go b/downstream.go index cb59948..f383212 100644 --- a/downstream.go +++ b/downstream.go @@ -1403,13 +1403,12 @@ func (dc *downstreamConn) loadNetwork(ctx context.Context) error { }} } + record := database.NewNetwork(dc.registration.networkName) + record.Nick = nick + dc.logger.Printf("auto-saving network %q", dc.registration.networkName) var err error - network, err = dc.user.createNetwork(ctx, &database.Network{ - Addr: dc.registration.networkName, - Nick: nick, - Enabled: true, - }) + network, err = dc.user.createNetwork(ctx, record) if err != nil { return err } @@ -3069,7 +3068,8 @@ func (dc *downstreamConn) handleMessageRegistered(ctx context.Context, msg *irc. } attrs := irc.ParseTags(attrsStr) - record := &database.Network{Nick: dc.nick, Enabled: true} + record := database.NewNetwork("") + record.Nick = dc.nick if err := updateNetworkAttrs(record, attrs, subcommand); err != nil { return err } diff --git a/server_test.go b/server_test.go index dc56981..fe88065 100644 --- a/server_test.go +++ b/server_test.go @@ -74,12 +74,8 @@ func createTestUpstream(t *testing.T, db database.Database, user *database.User) t.Fatalf("failed to create TCP listener: %v", err) } - network := &database.Network{ - Name: "testnet", - Addr: "irc+insecure://" + ln.Addr().String(), - Nick: user.Username, - Enabled: true, - } + network := database.NewNetwork("irc+insecure://" + ln.Addr().String()) + network.Name = "testnet" if err := db.StoreNetwork(context.Background(), user.ID, network); err != nil { t.Fatalf("failed to store test network: %v", err) } diff --git a/service.go b/service.go index 41097b9..848fcae 100644 --- a/service.go +++ b/service.go @@ -577,10 +577,7 @@ func handleServiceNetworkCreate(ctx *serviceContext, params []string) error { return fmt.Errorf("flag -addr is required") } - record := &database.Network{ - Addr: *fs.Addr, - Enabled: true, - } + record := database.NewNetwork(*fs.Addr) if err := fs.update(record); err != nil { return err }