6bae378db0
Refactored the code to use the new builder syntax. Fixed the DbInit logic. Made sure the prepared statements are cleaned up. Added the AdminOnly middleware and added it to the routes. Added the Query method to the selectBuilder.
38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
package common
|
|
|
|
import (
|
|
"database/sql"
|
|
|
|
"../query_gen/lib"
|
|
)
|
|
|
|
type LogStmts struct {
|
|
addModLogEntry *sql.Stmt
|
|
addAdminLogEntry *sql.Stmt
|
|
}
|
|
|
|
var logStmts LogStmts
|
|
|
|
func init() {
|
|
DbInits.Add(func() error {
|
|
acc := qgen.Builder.Accumulator()
|
|
logStmts = LogStmts{
|
|
addModLogEntry: acc.Insert("moderation_logs").Columns("action, elementID, elementType, ipaddress, actorID, doneAt").Fields("?,?,?,?,?,UTC_TIMESTAMP()").Prepare(),
|
|
addAdminLogEntry: acc.Insert("administration_logs").Columns("action, elementID, elementType, ipaddress, actorID, doneAt").Fields("?,?,?,?,?,UTC_TIMESTAMP()").Prepare(),
|
|
}
|
|
return acc.FirstError()
|
|
})
|
|
}
|
|
|
|
// TODO: Make a store for this?
|
|
func AddModLog(action string, elementID int, elementType string, ipaddress string, actorID int) (err error) {
|
|
_, err = logStmts.addModLogEntry.Exec(action, elementID, elementType, ipaddress, actorID)
|
|
return err
|
|
}
|
|
|
|
// TODO: Make a store for this?
|
|
func AddAdminLog(action string, elementID string, elementType int, ipaddress string, actorID int) (err error) {
|
|
_, err = logStmts.addAdminLogEntry.Exec(action, elementID, elementType, ipaddress, actorID)
|
|
return err
|
|
}
|