mirror of
https://github.com/Eggbertx/gochan.git
synced 2025-08-26 10:36:23 -07:00
Use contexts with timeout for appeals and wordfilters
This commit is contained in:
parent
f72435ec8d
commit
64724001a1
3 changed files with 26 additions and 24 deletions
|
@ -1,6 +1,7 @@
|
|||
package gcsql
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"strconv"
|
||||
)
|
||||
|
@ -14,12 +15,15 @@ func GetAppeals(banID int, limit int) ([]IPBanAppeal, error) {
|
|||
if limit > 0 {
|
||||
query += " LIMIT " + strconv.Itoa(limit)
|
||||
}
|
||||
ctx, cancel := context.WithTimeout(context.Background(), gcdb.defaultTimeout)
|
||||
defer cancel()
|
||||
|
||||
var rows *sql.Rows
|
||||
var err error
|
||||
if banID > 0 {
|
||||
rows, err = QuerySQL(query, banID)
|
||||
rows, err = QueryContextSQL(ctx, nil, query, banID)
|
||||
} else {
|
||||
rows, err = QuerySQL(query)
|
||||
rows, err = QueryContextSQL(ctx, nil, query)
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -59,13 +63,15 @@ func ApproveAppeal(appealID int, staffID int) error {
|
|||
return err
|
||||
}
|
||||
defer tx.Rollback()
|
||||
if _, err = ExecTxSQL(tx, deactivateQuery, appealID); err != nil {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), gcdb.defaultTimeout)
|
||||
defer cancel()
|
||||
if _, err = ExecContextSQL(ctx, tx, deactivateQuery, appealID); err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err = ExecTxSQL(tx, deactivateAppealQuery, appealID, staffID); err != nil {
|
||||
if _, err = ExecContextSQL(ctx, tx, deactivateAppealQuery, appealID, staffID); err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err = ExecTxSQL(tx, deleteAppealQuery, appealID); err != nil {
|
||||
if _, err = ExecContextSQL(ctx, tx, deleteAppealQuery, appealID); err != nil {
|
||||
return err
|
||||
}
|
||||
return tx.Commit()
|
||||
|
|
|
@ -95,9 +95,6 @@ func (db *GCDB) PrepareContextSQL(ctx context.Context, query string, tx *sql.Tx)
|
|||
if prepared, err = SetupSQLString(db.replacer.Replace(query), db); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx == nil {
|
||||
ctx = context.Background()
|
||||
}
|
||||
_, hasDeadline := ctx.Deadline()
|
||||
if !hasDeadline {
|
||||
var cancel context.CancelFunc
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package gcsql
|
||||
|
||||
import (
|
||||
"context"
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
|
@ -16,13 +17,15 @@ func CreateWordFilter(from string, to string, isRegex bool, boards string, staff
|
|||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
_, err = ExecSQL(`INSERT INTO DBPREFIXwordfilters
|
||||
(board_dirs,staff_id,staff_note,search,is_regex,change_to)
|
||||
VALUES(?,?,?,?,?,?)`, boards, staffID, staffNote, from, isRegex, to)
|
||||
if err != nil {
|
||||
const query = `INSERT INTO DBPREFIXwordfilters
|
||||
(board_dirs,staff_id,staff_note,search,is_regex,change_to)
|
||||
VALUES(?,?,?,?,?,?)`
|
||||
ctx, cancel := context.WithTimeout(context.Background(), gcdb.defaultTimeout)
|
||||
defer cancel()
|
||||
if _, err = ExecContextSQL(ctx, nil, query, boards, staffID, staffNote, from, isRegex, to); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
boardsPtr := new(string)
|
||||
*boardsPtr = boards
|
||||
return &Wordfilter{
|
||||
|
@ -40,8 +43,11 @@ func CreateWordFilter(from string, to string, isRegex bool, boards string, staff
|
|||
// encountered
|
||||
func GetWordfilters() ([]Wordfilter, error) {
|
||||
var wfs []Wordfilter
|
||||
query := `SELECT id,board_dirs,staff_id,staff_note,issued_at,search,is_regex,change_to FROM DBPREFIXwordfilters`
|
||||
rows, err := QuerySQL(query)
|
||||
const query = `SELECT id,board_dirs,staff_id,staff_note,issued_at,search,is_regex,change_to FROM DBPREFIXwordfilters`
|
||||
ctx, cancel := context.WithTimeout(context.Background(), gcdb.defaultTimeout)
|
||||
defer cancel()
|
||||
|
||||
rows, err := QueryContextSQL(ctx, nil, query)
|
||||
if err != nil {
|
||||
return wfs, err
|
||||
}
|
||||
|
@ -49,15 +55,8 @@ func GetWordfilters() ([]Wordfilter, error) {
|
|||
for rows.Next() {
|
||||
var wf Wordfilter
|
||||
if err = rows.Scan(
|
||||
&wf.ID,
|
||||
&wf.BoardDirs,
|
||||
&wf.StaffID,
|
||||
&wf.StaffNote,
|
||||
&wf.IssuedAt,
|
||||
&wf.Search,
|
||||
&wf.IsRegex,
|
||||
&wf.ChangeTo,
|
||||
); err != nil {
|
||||
&wf.ID, &wf.BoardDirs, &wf.StaffID, &wf.StaffNote,
|
||||
&wf.IssuedAt, &wf.Search, &wf.IsRegex, &wf.ChangeTo); err != nil {
|
||||
return wfs, err
|
||||
}
|
||||
wfs = append(wfs, wf)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue