Changeset 375 in code


Ignore:
Timestamp:
Aug 3, 2020, 4:43:39 PM (5 years ago)
Author:
contact
Message:

Add DB.DeleteUser

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/db.go

    r356 r375  
    249249
    250250        return err
     251}
     252
     253func (db *DB) DeleteUser(username string) error {
     254        db.lock.Lock()
     255        defer db.lock.Unlock()
     256
     257        tx, err := db.db.Begin()
     258        if err != nil {
     259                return err
     260        }
     261        defer tx.Rollback()
     262
     263        _, err = tx.Exec(`DELETE FROM Channel
     264                WHERE id IN (
     265                        SELECT Channel.id
     266                        FROM Channel
     267                        JOIN Network ON Channel.network = Network.id
     268                        WHERE Network.user = ?
     269                )`, username)
     270        if err != nil {
     271                return err
     272        }
     273
     274        _, err = tx.Exec("DELETE FROM Network WHERE user = ?", username)
     275        if err != nil {
     276                return err
     277        }
     278
     279        _, err = tx.Exec("DELETE FROM User WHERE username = ?", username)
     280        if err != nil {
     281                return err
     282        }
     283
     284        return tx.Commit()
    251285}
    252286
     
    360394        defer tx.Rollback()
    361395
     396        _, err = tx.Exec("DELETE FROM Channel WHERE network = ?", id)
     397        if err != nil {
     398                return err
     399        }
     400
    362401        _, err = tx.Exec("DELETE FROM Network WHERE id = ?", id)
    363         if err != nil {
    364                 return err
    365         }
    366 
    367         _, err = tx.Exec("DELETE FROM Channel WHERE network = ?", id)
    368402        if err != nil {
    369403                return err
Note: See TracChangeset for help on using the changeset viewer.