mirror of
https://github.com/matrix-org/dendrite
synced 2024-06-14 02:18:34 +02:00
Add deleting reports
This commit is contained in:
parent
fbeaa0f9da
commit
fa3671e422
|
@ -273,6 +273,7 @@ type ClientRoomserverAPI interface {
|
|||
) (int64, error)
|
||||
QueryAdminEventReports(ctx context.Context, from, limit uint64, backwards bool, userID, roomID string) ([]QueryAdminEventReportsResponse, int64, error)
|
||||
QueryAdminEventReport(ctx context.Context, reportID uint64) (QueryAdminEventReportResponse, error)
|
||||
PerformAdminDeleteEventReport(ctx context.Context, reportID uint64) error
|
||||
}
|
||||
|
||||
type UserRoomserverAPI interface {
|
||||
|
|
|
@ -354,3 +354,7 @@ func (r *Admin) PerformAdminDownloadState(
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *Admin) PerformAdminDeleteEventReport(ctx context.Context, reportID uint64) error {
|
||||
return r.DB.AdminDeleteEventReport(ctx, reportID)
|
||||
}
|
||||
|
|
|
@ -197,6 +197,7 @@ type Database interface {
|
|||
RoomsWithACLs(ctx context.Context) ([]string, error)
|
||||
QueryAdminEventReports(ctx context.Context, from uint64, limit uint64, backwards bool, userID string, roomID string) ([]api.QueryAdminEventReportsResponse, int64, error)
|
||||
QueryAdminEventReport(ctx context.Context, reportID uint64) (api.QueryAdminEventReportResponse, error)
|
||||
AdminDeleteEventReport(ctx context.Context, reportID uint64) error
|
||||
}
|
||||
|
||||
type UserRoomKeys interface {
|
||||
|
|
|
@ -81,11 +81,14 @@ FROM roomserver_reported_events
|
|||
WHERE id = $1
|
||||
`
|
||||
|
||||
const deleteReportedEventSQL = `DELETE FROM roomserver_reported_events WHERE id = $1`
|
||||
|
||||
type reportedEventsStatements struct {
|
||||
insertReportedEventsStmt *sql.Stmt
|
||||
selectReportedEventsDescStmt *sql.Stmt
|
||||
selectReportedEventsAscStmt *sql.Stmt
|
||||
selectReportedEventStmt *sql.Stmt
|
||||
deleteReportedEventStmt *sql.Stmt
|
||||
}
|
||||
|
||||
func CreateReportedEventsTable(db *sql.DB) error {
|
||||
|
@ -101,6 +104,7 @@ func PrepareReportedEventsTable(db *sql.DB) (tables.ReportedEvents, error) {
|
|||
{&s.selectReportedEventsDescStmt, selectReportedEventsDescSQL},
|
||||
{&s.selectReportedEventsAscStmt, selectReportedEventsAscSQL},
|
||||
{&s.selectReportedEventStmt, selectReportedEventSQL},
|
||||
{&s.deleteReportedEventStmt, deleteReportedEventSQL},
|
||||
}.Prepare(db)
|
||||
}
|
||||
|
||||
|
@ -209,3 +213,9 @@ func (r *reportedEventsStatements) SelectReportedEvent(
|
|||
}
|
||||
return row, nil
|
||||
}
|
||||
|
||||
func (r *reportedEventsStatements) DeleteReportedEvent(ctx context.Context, txn *sql.Tx, reportID uint64) error {
|
||||
stmt := sqlutil.TxStmt(txn, r.deleteReportedEventStmt)
|
||||
_, err := stmt.ExecContext(ctx, reportID)
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -2102,6 +2102,12 @@ func (d *Database) QueryAdminEventReport(ctx context.Context, reportID uint64) (
|
|||
return report, nil
|
||||
}
|
||||
|
||||
func (d *Database) AdminDeleteEventReport(ctx context.Context, reportID uint64) error {
|
||||
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
|
||||
return d.ReportedEventsTable.DeleteReportedEvent(ctx, txn, reportID)
|
||||
})
|
||||
}
|
||||
|
||||
// findRoomNameAndCanonicalAlias loops over events to find the corresponding room name and canonicalAlias
|
||||
// for a given roomID.
|
||||
func findRoomNameAndCanonicalAlias(events []tables.StrippedEvent, roomID string) (name, canonicalAlias string) {
|
||||
|
|
|
@ -80,11 +80,14 @@ FROM roomserver_reported_events
|
|||
WHERE id = $1
|
||||
`
|
||||
|
||||
const deleteReportedEventSQL = `DELETE FROM roomserver_reported_events WHERE id = $1`
|
||||
|
||||
type reportedEventsStatements struct {
|
||||
insertReportedEventsStmt *sql.Stmt
|
||||
selectReportedEventsDescStmt *sql.Stmt
|
||||
selectReportedEventsAscStmt *sql.Stmt
|
||||
selectReportedEventStmt *sql.Stmt
|
||||
deleteReportedEventStmt *sql.Stmt
|
||||
}
|
||||
|
||||
func CreateReportedEventsTable(db *sql.DB) error {
|
||||
|
@ -100,6 +103,7 @@ func PrepareReportedEventsTable(db *sql.DB) (tables.ReportedEvents, error) {
|
|||
{&s.selectReportedEventsDescStmt, selectReportedEventsDescSQL},
|
||||
{&s.selectReportedEventsAscStmt, selectReportedEventsAscSQL},
|
||||
{&s.selectReportedEventStmt, selectReportedEventSQL},
|
||||
{&s.deleteReportedEventStmt, deleteReportedEventSQL},
|
||||
}.Prepare(db)
|
||||
}
|
||||
|
||||
|
@ -209,3 +213,9 @@ func (r *reportedEventsStatements) SelectReportedEvent(
|
|||
}
|
||||
return row, nil
|
||||
}
|
||||
|
||||
func (r *reportedEventsStatements) DeleteReportedEvent(ctx context.Context, txn *sql.Tx, reportID uint64) error {
|
||||
stmt := sqlutil.TxStmt(txn, r.deleteReportedEventStmt)
|
||||
_, err := stmt.ExecContext(ctx, reportID)
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -152,6 +152,7 @@ type ReportedEvents interface {
|
|||
txn *sql.Tx,
|
||||
reportID uint64,
|
||||
) (api.QueryAdminEventReportResponse, error)
|
||||
DeleteReportedEvent(ctx context.Context, txn *sql.Tx, reportID uint64) error
|
||||
}
|
||||
|
||||
type MembershipState int64
|
||||
|
|
Loading…
Reference in a new issue