mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-23 15:10:15 +00:00
* renamed package to log to stop side import requirement * reverted comment changes * reverted comment changes * one more reverting wording back to logger * wording changes on comments
94 lines
2.4 KiB
Go
94 lines
2.4 KiB
Go
package audit
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"time"
|
|
|
|
"github.com/thrasher-corp/gocryptotrader/database"
|
|
modelPSQL "github.com/thrasher-corp/gocryptotrader/database/models/postgres"
|
|
modelSQLite "github.com/thrasher-corp/gocryptotrader/database/models/sqlite3"
|
|
"github.com/thrasher-corp/gocryptotrader/database/repository"
|
|
"github.com/thrasher-corp/gocryptotrader/log"
|
|
"github.com/thrasher-corp/sqlboiler/boil"
|
|
"github.com/thrasher-corp/sqlboiler/queries/qm"
|
|
)
|
|
|
|
// TableTimeFormat Go Time format conversion
|
|
const TableTimeFormat = "2006-01-02 15:04:05"
|
|
|
|
// Event inserts a new audit event to database
|
|
func Event(id, msgtype, message string) {
|
|
if database.DB.SQL == nil {
|
|
return
|
|
}
|
|
|
|
ctx := context.Background()
|
|
ctx = boil.SkipTimestamps(ctx)
|
|
|
|
tx, err := database.DB.SQL.BeginTx(ctx, nil)
|
|
if err != nil {
|
|
log.Errorf(log.Global, "Event transaction begin failed: %v", err)
|
|
return
|
|
}
|
|
|
|
if repository.GetSQLDialect() == database.DBSQLite3 {
|
|
var tempEvent = modelSQLite.AuditEvent{
|
|
Type: msgtype,
|
|
Identifier: id,
|
|
Message: message,
|
|
}
|
|
err = tempEvent.Insert(ctx, tx, boil.Blacklist("created_at"))
|
|
} else {
|
|
var tempEvent = modelPSQL.AuditEvent{
|
|
Type: msgtype,
|
|
Identifier: id,
|
|
Message: message,
|
|
}
|
|
err = tempEvent.Insert(ctx, tx, boil.Blacklist("created_at"))
|
|
}
|
|
|
|
if err != nil {
|
|
log.Errorf(log.Global, "Event insert failed: %v", err)
|
|
err = tx.Rollback()
|
|
if err != nil {
|
|
log.Errorf(log.Global, "Event Transaction rollback failed: %v", err)
|
|
}
|
|
return
|
|
}
|
|
|
|
err = tx.Commit()
|
|
if err != nil {
|
|
log.Errorf(log.Global, "Event Transaction commit failed: %v", err)
|
|
err = tx.Rollback()
|
|
if err != nil {
|
|
log.Errorf(log.Global, "Event Transaction rollback failed: %v", err)
|
|
}
|
|
return
|
|
}
|
|
}
|
|
|
|
// GetEvent () returns list of order events matching query
|
|
func GetEvent(startTime, endTime time.Time, order string, limit int) (interface{}, error) {
|
|
if database.DB.SQL == nil {
|
|
return nil, errors.New("database is nil")
|
|
}
|
|
|
|
query := qm.Where("created_at BETWEEN ? AND ?", startTime, endTime)
|
|
|
|
orderByQueryString := "id"
|
|
if order == "desc" {
|
|
orderByQueryString += " desc"
|
|
}
|
|
|
|
orderByQuery := qm.OrderBy(orderByQueryString)
|
|
limitQuery := qm.Limit(limit)
|
|
|
|
ctx := context.Background()
|
|
if repository.GetSQLDialect() == database.DBSQLite3 {
|
|
return modelSQLite.AuditEvents(query, orderByQuery, limitQuery).All(ctx, database.DB.SQL)
|
|
}
|
|
|
|
return modelPSQL.AuditEvents(query, orderByQuery, limitQuery).All(ctx, database.DB.SQL)
|
|
}
|