Changeset 222 in code for trunk


Ignore:
Timestamp:
Apr 5, 2020, 1:04:52 PM (5 years ago)
Author:
contact
Message:

Add network.{createUpdate,delete}Channel

These are about to get more complicated as we move towards per-entity
ring buffers.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/downstream.go

    r217 r222  
    828828                        })
    829829
    830                         ch, err := dc.srv.db.GetChannel(uc.network.ID, upstreamName)
    831                         if err == ErrNoSuchChannel {
    832                                 ch = &Channel{Name: upstreamName}
    833                         } else if err != nil {
    834                                 return err
    835                         }
    836 
    837                         ch.Key = key
    838 
    839                         if err := dc.srv.db.StoreChannel(uc.network.ID, ch); err != nil {
    840                                 return err
     830                        ch := &Channel{Name: upstreamName, Key: key}
     831                        if err := uc.network.createUpdateChannel(ch); err != nil {
     832                                dc.logger.Printf("failed to create or update channel %q: %v", upstreamName, err)
    841833                        }
    842834                }
     
    867859                        })
    868860
    869                         if err := dc.srv.db.DeleteChannel(uc.network.ID, upstreamName); err != nil {
    870                                 dc.logger.Printf("failed to delete channel %q in DB: %v", upstreamName, err)
     861                        if err := uc.network.deleteChannel(upstreamName); err != nil {
     862                                dc.logger.Printf("failed to delete channel %q: %v", upstreamName, err)
    871863                        }
    872864                }
  • trunk/user.go

    r218 r222  
    138138                uc.Close()
    139139        }
     140}
     141
     142func (net *network) createUpdateChannel(ch *Channel) error {
     143        if dbCh, err := net.user.srv.db.GetChannel(net.ID, ch.Name); err == nil {
     144                ch.ID = dbCh.ID
     145        } else if err != ErrNoSuchChannel {
     146                return err
     147        }
     148        return net.user.srv.db.StoreChannel(net.ID, ch)
     149}
     150
     151func (net *network) deleteChannel(name string) error {
     152        return net.user.srv.db.DeleteChannel(net.ID, name)
    140153}
    141154
Note: See TracChangeset for help on using the changeset viewer.