Changeset 676 in code for trunk


Ignore:
Timestamp:
Nov 8, 2021, 6:36:10 PM (4 years ago)
Author:
contact
Message:

Add context support to user and network mutations

References: https://todo.sr.ht/~emersion/soju/141

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/downstream.go

    r675 r676  
    11351135                dc.logger.Printf("auto-saving network %q", dc.networkName)
    11361136                var err error
    1137                 network, err = dc.user.createNetwork(&Network{
     1137                network, err = dc.user.createNetwork(context.TODO(), &Network{
    11381138                        Addr:    dc.networkName,
    11391139                        Nick:    nick,
     
    15371537                // mutates the original list
    15381538                for _, record := range needUpdate {
    1539                         if _, err := dc.user.updateNetwork(&record); err != nil {
     1539                        if _, err := dc.user.updateNetwork(ctx, &record); err != nil {
    15401540                                dc.logger.Printf("failed to update network realname: %v", err)
    15411541                                storeErr = err
     
    16561656                                })
    16571657
    1658                                 if err := uc.network.deleteChannel(upstreamName); err != nil {
     1658                                if err := uc.network.deleteChannel(ctx, upstreamName); err != nil {
    16591659                                        dc.logger.Printf("failed to delete channel %q: %v", upstreamName, err)
    16601660                                }
     
    24422442                        }
    24432443
    2444                         network, err := dc.user.createNetwork(record)
     2444                        network, err := dc.user.createNetwork(ctx, record)
    24452445                        if err != nil {
    24462446                                return ircError{&irc.Message{
     
    24862486                        }
    24872487
    2488                         _, err = dc.user.updateNetwork(&record)
     2488                        _, err = dc.user.updateNetwork(ctx, &record)
    24892489                        if err != nil {
    24902490                                return ircError{&irc.Message{
     
    25172517                        }
    25182518
    2519                         if err := dc.user.deleteNetwork(net.ID); err != nil {
     2519                        if err := dc.user.deleteNetwork(ctx, net.ID); err != nil {
    25202520                                return err
    25212521                        }
  • trunk/service.go

    r664 r676  
    491491        }
    492492
    493         network, err := dc.user.createNetwork(record)
     493        network, err := dc.user.createNetwork(context.TODO(), record)
    494494        if err != nil {
    495495                return fmt.Errorf("could not create network: %v", err)
     
    566566        }
    567567
    568         network, err := dc.user.updateNetwork(&record)
     568        network, err := dc.user.updateNetwork(context.TODO(), &record)
    569569        if err != nil {
    570570                return fmt.Errorf("could not update network: %v", err)
     
    585585        }
    586586
    587         if err := dc.user.deleteNetwork(net.ID); err != nil {
     587        if err := dc.user.deleteNetwork(context.TODO(), net.ID); err != nil {
    588588                return err
    589589        }
     
    838838                }
    839839
    840                 if err := dc.user.updateUser(&record); err != nil {
     840                if err := dc.user.updateUser(context.TODO(), &record); err != nil {
    841841                        return err
    842842                }
  • trunk/user.go

    r666 r676  
    320320}
    321321
    322 func (net *network) deleteChannel(name string) error {
     322func (net *network) deleteChannel(ctx context.Context, name string) error {
    323323        ch := net.channels.Value(name)
    324324        if ch == nil {
     
    332332        }
    333333
    334         if err := net.user.srv.db.DeleteChannel(context.TODO(), ch.ID); err != nil {
     334        if err := net.user.srv.db.DeleteChannel(ctx, ch.ID); err != nil {
    335335                return err
    336336        }
     
    661661                        }
    662662
    663                         e.done <- u.updateUser(&record)
     663                        e.done <- u.updateUser(context.TODO(), &record)
    664664
    665665                        // If the password was updated, kill all downstream connections to
     
    767767}
    768768
    769 func (u *user) createNetwork(record *Network) (*network, error) {
     769func (u *user) createNetwork(ctx context.Context, record *Network) (*network, error) {
    770770        if record.ID != 0 {
    771771                panic("tried creating an already-existing network")
     
    781781
    782782        network := newNetwork(u, record, nil)
    783         err := u.srv.db.StoreNetwork(context.TODO(), u.ID, &network.Network)
     783        err := u.srv.db.StoreNetwork(ctx, u.ID, &network.Network)
    784784        if err != nil {
    785785                return nil, err
     
    803803}
    804804
    805 func (u *user) updateNetwork(record *Network) (*network, error) {
     805func (u *user) updateNetwork(ctx context.Context, record *Network) (*network, error) {
    806806        if record.ID == 0 {
    807807                panic("tried updating a new network")
     
    823823        }
    824824
    825         if err := u.srv.db.StoreNetwork(context.TODO(), u.ID, record); err != nil {
     825        if err := u.srv.db.StoreNetwork(ctx, u.ID, record); err != nil {
    826826                return nil, err
    827827        }
     
    884884}
    885885
    886 func (u *user) deleteNetwork(id int64) error {
     886func (u *user) deleteNetwork(ctx context.Context, id int64) error {
    887887        network := u.getNetworkByID(id)
    888888        if network == nil {
     
    890890        }
    891891
    892         if err := u.srv.db.DeleteNetwork(context.TODO(), network.ID); err != nil {
     892        if err := u.srv.db.DeleteNetwork(ctx, network.ID); err != nil {
    893893                return err
    894894        }
     
    910910}
    911911
    912 func (u *user) updateUser(record *User) error {
     912func (u *user) updateUser(ctx context.Context, record *User) error {
    913913        if u.ID != record.ID {
    914914                panic("ID mismatch when updating user")
     
    916916
    917917        realnameUpdated := u.Realname != record.Realname
    918         if err := u.srv.db.StoreUser(context.TODO(), record); err != nil {
     918        if err := u.srv.db.StoreUser(ctx, record); err != nil {
    919919                return fmt.Errorf("failed to update user %q: %v", u.Username, err)
    920920        }
     
    932932                var netErr error
    933933                for _, net := range needUpdate {
    934                         if _, err := u.updateNetwork(&net); err != nil {
     934                        if _, err := u.updateNetwork(ctx, &net); err != nil {
    935935                                netErr = err
    936936                        }
Note: See TracChangeset for help on using the changeset viewer.