Improved database error logging in server api

This commit is contained in:
2025-04-29 19:12:55 +03:00
parent 89fc704d80
commit d6a2eda646

View File

@@ -52,7 +52,7 @@ func SendMessage(ctx context.Context, sess *session.Session, request *packet.Sen
return &packet.Error{Error: "frequency doesn't exist"}
}
if err != nil {
log.Println("database error 0:", err)
log.Println("api.go:54 database error:", err)
return &ErrInternalError
}
@@ -64,7 +64,7 @@ func SendMessage(ctx context.Context, sess *session.Session, request *packet.Sen
return &ErrPermissionDenied // Not a member
}
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:66 database error:", err)
return &ErrInternalError
}
if !member.IsMember {
@@ -86,7 +86,7 @@ func SendMessage(ctx context.Context, sess *session.Session, request *packet.Sen
return &packet.Error{Error: "pinged user doesn't exist"}
}
if err != nil {
log.Println("database error 2:", err)
log.Println("api.go:88 database error:", err)
return &ErrInternalError
}
}
@@ -101,7 +101,7 @@ func SendMessage(ctx context.Context, sess *session.Session, request *packet.Sen
Ping: request.Ping,
})
if err != nil {
log.Println("database error 3:", err)
log.Println("api.go:103 database error:", err)
return &ErrInternalError
}
@@ -123,7 +123,7 @@ func SendMessage(ctx context.Context, sess *session.Session, request *packet.Sen
return &packet.Error{Error: "user doesn't exist"}
}
if err != nil {
log.Println("database error 4:", err)
log.Println("api.go:125 database error:", err)
return &ErrInternalError
}
@@ -133,7 +133,7 @@ func SendMessage(ctx context.Context, sess *session.Session, request *packet.Sen
BlockedUserID: user.ID,
})
if err != nil && err != sql.ErrNoRows {
log.Println("database error 5:", err)
log.Println("api.go:136 database error:", err)
return &ErrInternalError
}
if err != sql.ErrNoRows {
@@ -147,7 +147,7 @@ func SendMessage(ctx context.Context, sess *session.Session, request *packet.Sen
BlockedUserID: sess.ID(),
})
if err != nil && err != sql.ErrNoRows {
log.Println("database error 6:", err)
log.Println("api.go:150 database error:", err)
return &ErrInternalError
}
if err != sql.ErrNoRows {
@@ -164,7 +164,7 @@ func SendMessage(ctx context.Context, sess *session.Session, request *packet.Sen
return &ErrPermissionDenied
}
if err != nil {
log.Println("database error 7:", err)
log.Println("api.go:167 database error:", err)
return &ErrInternalError
}
if !bytes.Equal(sess.PubKey, pubKey) {
@@ -181,7 +181,7 @@ func SendMessage(ctx context.Context, sess *session.Session, request *packet.Sen
Ping: nil,
})
if err != nil {
log.Println("database error 8:", err)
log.Println("api.go:184 database error:", err)
return &ErrInternalError
}
@@ -191,7 +191,7 @@ func SendMessage(ctx context.Context, sess *session.Session, request *packet.Sen
LastRead: 0,
})
if err != nil {
log.Println("database error 9:", err)
log.Println("api.go:194 database error:", err)
return &ErrInternalError
}
@@ -214,7 +214,7 @@ func RequestMessages(ctx context.Context, sess *session.Session, request *packet
return &packet.Error{Error: "frequency doesn't exist"}
}
if err != nil {
log.Println("database error 0:", err)
log.Println("api.go:217 database error:", err)
return &ErrInternalError
}
@@ -226,7 +226,7 @@ func RequestMessages(ctx context.Context, sess *session.Session, request *packet
return &ErrPermissionDenied // Not a member
}
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:229 database error:", err)
return &ErrInternalError
}
if !member.IsMember {
@@ -239,7 +239,7 @@ func RequestMessages(ctx context.Context, sess *session.Session, request *packet
messages, err := queries.GetFrequencyMessages(ctx, request.FrequencyID)
if err != nil {
log.Println("database error 2:", err)
log.Println("api.go:242 database error:", err)
return &ErrInternalError
}
@@ -255,7 +255,7 @@ func RequestMessages(ctx context.Context, sess *session.Session, request *packet
User2: request.ReceiverID,
})
if err != nil {
log.Println("database error 3:", err)
log.Println("api.go:258 database error:", err)
return &ErrInternalError
}
@@ -336,7 +336,7 @@ func CreateNetwork(ctx context.Context, sess *session.Session, request *packet.C
FgHexColor: request.FgHexColor,
})
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:338 database error:", err)
return &ErrInternalError
}
@@ -348,7 +348,7 @@ func CreateNetwork(ctx context.Context, sess *session.Session, request *packet.C
Perms: packet.PermReadWrite,
})
if err != nil {
log.Println("database error 2:", err)
log.Println("api.go:355 database error:", err)
return &ErrInternalError
}
@@ -362,19 +362,19 @@ func CreateNetwork(ctx context.Context, sess *session.Session, request *packet.C
BanReason: nil,
})
if err != nil {
log.Println("database error 3:", err)
log.Println("api.go:365 database error:", err)
return &ErrInternalError
}
user, err := qtx.GetUserById(ctx, network.OwnerID)
if err != nil {
log.Println("database error 4:", err)
log.Println("api.go:371 database error:", err)
return &ErrInternalError
}
err = tx.Commit()
if err != nil {
log.Println("database error 5:", err)
log.Println("api.go:377 database error:", err)
return &ErrInternalError
}
@@ -448,7 +448,7 @@ func CreateFrequency(ctx context.Context, sess *session.Session, request *packet
return &packet.Error{Error: "either user or network don't exist"}
}
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:451 database error:", err)
return &ErrInternalError
}
if !isAdmin {
@@ -480,7 +480,7 @@ func CreateFrequency(ctx context.Context, sess *session.Session, request *packet
Perms: int64(request.Perms),
})
if err != nil {
log.Println("database error 2:", err)
log.Println("api.go:483 database error:", err)
return &ErrInternalError
}
@@ -499,7 +499,7 @@ func SwapFrequencies(ctx context.Context, sess *session.Session, request *packet
return &packet.Error{Error: "either user or network don't exist"}
}
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:502 database error:", err)
return &ErrInternalError
}
if !isAdmin {
@@ -512,7 +512,7 @@ func SwapFrequencies(ctx context.Context, sess *session.Session, request *packet
NetworkID: request.Network,
})
if err != nil {
log.Println("database error 2:", err)
log.Println("api.go:515 database error:", err)
return &ErrInternalError
}
@@ -532,7 +532,7 @@ func DeleteFrequency(ctx context.Context, sess *session.Session, request *packet
return &packet.Error{Error: "frequency doesn't exist"}
}
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:535 database error:", err)
return &ErrInternalError
}
@@ -542,7 +542,7 @@ func DeleteFrequency(ctx context.Context, sess *session.Session, request *packet
return &ErrPermissionDenied // User not in network
}
if err != nil {
log.Println("database error 2:", err)
log.Println("api.go:545 database error:", err)
return &ErrInternalError
}
if !isAdmin {
@@ -552,7 +552,7 @@ func DeleteFrequency(ctx context.Context, sess *session.Session, request *packet
// At least one frequency exists
frequencies, err := queries.GetNetworkFrequencies(ctx, frequency.NetworkID)
if err != nil {
log.Println("database error 3:", err)
log.Println("api.go:555 database error:", err)
return &ErrInternalError
}
if len(frequencies) == 1 {
@@ -561,7 +561,7 @@ func DeleteFrequency(ctx context.Context, sess *session.Session, request *packet
err = queries.DeleteFrequency(ctx, frequency.ID)
if err != nil {
log.Println("database error 4:", err)
log.Println("api.go:564 database error:", err)
return &ErrInternalError
}
@@ -580,7 +580,7 @@ func DeleteNetwork(ctx context.Context, sess *session.Session, request *packet.D
return &packet.Error{Error: "network doesn't exist"}
}
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:583 database error:", err)
return &ErrInternalError
}
@@ -591,7 +591,7 @@ func DeleteNetwork(ctx context.Context, sess *session.Session, request *packet.D
err = queries.DeleteNetwork(ctx, request.Network)
if err != nil {
log.Println("database error 2:", err)
log.Println("api.go:594 database error:", err)
return &ErrInternalError
}
@@ -613,7 +613,7 @@ func SetMember(ctx context.Context, sess *session.Session, request *packet.SetMe
network, err := queries.GetNetworkById(ctx, request.Network)
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:616 database error:", err)
return &ErrInternalError
}
@@ -634,13 +634,13 @@ func SetMember(ctx context.Context, sess *session.Session, request *packet.SetMe
BanReason: nil,
})
if err != nil {
log.Println("database error 2:", err)
log.Println("api.go:637 database error:", err)
return &ErrInternalError
}
user, err := queries.GetUserById(ctx, newMember.UserID)
if err != nil {
log.Println("database error 3:", err)
log.Println("api.go:643 database error:", err)
return &ErrInternalError
}
@@ -653,13 +653,13 @@ func SetMember(ctx context.Context, sess *session.Session, request *packet.SetMe
frequencies, err := queries.GetNetworkFrequencies(ctx, network.ID)
if err != nil {
log.Println("database error 4:", err)
log.Println("api.go:656 database error:", err)
return &ErrInternalError
}
membersAndUsers, err := queries.GetNetworkMembers(ctx, network.ID)
if err != nil {
log.Println("database error 5:", err)
log.Println("api.go:662 database error:", err)
return &ErrInternalError
}
members, users := SplitMembersAndUsers(membersAndUsers)
@@ -677,14 +677,14 @@ func SetMember(ctx context.Context, sess *session.Session, request *packet.SetMe
}
if err != nil {
log.Println("database error 6:", err)
log.Println("api.go:680 database error:", err)
return &ErrInternalError
}
isSessOwner := sess.ID() == network.OwnerID
isSessAdmin, err := IsNetworkAdmin(ctx, queries, sess.ID(), request.Network)
if err != nil {
log.Println("database error 7:", err)
log.Println("api.go:687 database error:", err)
return &ErrInternalError
}
@@ -741,7 +741,7 @@ func SetMember(ctx context.Context, sess *session.Session, request *packet.SetMe
BanReason: banReason,
})
if err != nil {
log.Println("database error 8:", err)
log.Println("api.go:744 database error:", err)
return &ErrInternalError
}
@@ -771,7 +771,7 @@ func SetMember(ctx context.Context, sess *session.Session, request *packet.SetMe
user, err := queries.GetUserById(ctx, newMember.UserID)
if err != nil {
log.Println("database error 9:", err)
log.Println("api.go:774 database error:", err)
return &ErrInternalError
}
@@ -829,7 +829,7 @@ func SetUserData(ctx context.Context, sess *session.Session, request *packet.Set
Data: *request.Data,
})
if err != nil {
log.Println("database error 0:", err)
log.Println("api.go:832 database error:", err)
return &ErrInternalError
}
}
@@ -860,7 +860,7 @@ func SetUserData(ctx context.Context, sess *session.Session, request *packet.Set
ID: sess.ID(),
})
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:863 database error:", err)
return &ErrInternalError
}
@@ -878,7 +878,7 @@ func GetUserData(ctx context.Context, sess *session.Session, request *packet.Get
user, err := queries.GetUserById(ctx, sess.ID())
if err != nil {
log.Println("database error 0:", err)
log.Println("api.go:881 database error:", err)
return &ErrInternalError
}
@@ -891,7 +891,7 @@ func GetUserData(ctx context.Context, sess *session.Session, request *packet.Get
}
}
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:894 database error:", err)
return &ErrInternalError
}
@@ -909,7 +909,7 @@ func UpdateNetwork(ctx context.Context, sess *session.Session, request *packet.U
return &packet.Error{Error: "network doesn't exist"}
}
if err != nil {
log.Println("database error 0:", err)
log.Println("api.go:912 database error:", err)
return &ErrInternalError
}
@@ -949,7 +949,7 @@ func UpdateNetwork(ctx context.Context, sess *session.Session, request *packet.U
ID: network.ID,
})
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:952 database error:", err)
return &ErrInternalError
}
@@ -973,7 +973,7 @@ func UpdateFrequency(ctx context.Context, sess *session.Session, request *packet
return &packet.Error{Error: "frequency doesn't exist"}
}
if err != nil {
log.Println("database error 0:", err)
log.Println("api.go:976 database error:", err)
return &ErrInternalError
}
@@ -982,7 +982,7 @@ func UpdateFrequency(ctx context.Context, sess *session.Session, request *packet
return &packet.Error{Error: "either network doesn't exist or user is not apart of this network"}
}
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:988 database error:", err)
return &ErrInternalError
}
if !isAdmin {
@@ -1013,7 +1013,7 @@ func UpdateFrequency(ctx context.Context, sess *session.Session, request *packet
ID: frequency.ID,
})
if err != nil {
log.Println("database error 2:", err)
log.Println("api.go:1019 database error:", err)
return &ErrInternalError
}
@@ -1032,26 +1032,26 @@ func DeleteMessage(ctx context.Context, sess *session.Session, request *packet.D
return &packet.Error{Error: "message doesn't exist"}
}
if err != nil {
log.Println("database error 0:", err)
log.Println("api.go:1038 database error:", err)
return &ErrInternalError
}
if message.FrequencyID != nil {
frequency, err := queries.GetFrequencyById(ctx, *message.FrequencyID)
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:1045 database error:", err)
return &ErrInternalError
}
network, err := queries.GetNetworkById(ctx, frequency.NetworkID)
if err != nil {
log.Println("database error 2:", err)
log.Println("api.go:1051 database error:", err)
return &ErrInternalError
}
isSessAdmin, err := IsNetworkAdmin(ctx, queries, sess.ID(), frequency.NetworkID)
if err != nil {
log.Println("database error 3:", err)
log.Println("api.go:1057 database error:", err)
return &ErrInternalError
}
@@ -1064,7 +1064,7 @@ func DeleteMessage(ctx context.Context, sess *session.Session, request *packet.D
err = queries.DeleteMessage(ctx, message.ID)
if err != nil {
log.Println("database error 4:", err)
log.Println("api.go:1070 database error:", err)
return &ErrInternalError
}
@@ -1087,7 +1087,7 @@ func DeleteMessage(ctx context.Context, sess *session.Session, request *packet.D
err = queries.DeleteMessage(ctx, message.ID)
if err != nil {
log.Println("database error 5:", err)
log.Println("api.go:1093 database error:", err)
return &ErrInternalError
}
@@ -1121,7 +1121,7 @@ func EditMessage(ctx context.Context, sess *session.Session, request *packet.Edi
return &packet.Error{Error: "message doesn't exist"}
}
if err != nil {
log.Println("database error 0:", err)
log.Println("api.go:1127 database error:", err)
return &ErrInternalError
}
@@ -1136,7 +1136,7 @@ func EditMessage(ctx context.Context, sess *session.Session, request *packet.Edi
if message.FrequencyID != nil {
frequency, err := queries.GetFrequencyById(ctx, *message.FrequencyID)
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:1142 database error:", err)
return &ErrInternalError
}
@@ -1145,7 +1145,7 @@ func EditMessage(ctx context.Context, sess *session.Session, request *packet.Edi
ID: message.ID,
})
if err != nil {
log.Println("database error 4:", err)
log.Println("api.go:1151 database error:", err)
return &ErrInternalError
}
@@ -1167,7 +1167,7 @@ func EditMessage(ctx context.Context, sess *session.Session, request *packet.Edi
ID: message.ID,
})
if err != nil {
log.Println("database error 4:", err)
log.Println("api.go:1173 database error:", err)
return &ErrInternalError
}
@@ -1193,7 +1193,7 @@ func TrustUser(ctx context.Context, sess *session.Session, request *packet.Trust
return &packet.Error{Error: "requested user doesn't exist"}
}
if err != nil {
log.Println("database error 0:", err)
log.Println("api.go:1199 database error:", err)
return &ErrInternalError
}
@@ -1210,7 +1210,7 @@ func TrustUser(ctx context.Context, sess *session.Session, request *packet.Trust
}
}
if err != sql.ErrNoRows {
log.Println("database error 1:", err)
log.Println("api.go:1213 database error:", err)
return &ErrInternalError
}
@@ -1222,7 +1222,7 @@ func TrustUser(ctx context.Context, sess *session.Session, request *packet.Trust
return &packet.Error{Error: "cannot trust blocked user, unblock them first"}
}
if err != sql.ErrNoRows {
log.Println("database error 2:", err)
log.Println("api.go:1225 database error:", err)
return &ErrInternalError
}
@@ -1232,7 +1232,7 @@ func TrustUser(ctx context.Context, sess *session.Session, request *packet.Trust
TrustedPublicKey: user.PublicKey,
})
if err != nil {
log.Println("database error 3:", err)
log.Println("api.go:1235 database error:", err)
return &ErrInternalError
}
@@ -1247,7 +1247,7 @@ func TrustUser(ctx context.Context, sess *session.Session, request *packet.Trust
TrustedUserID: user.ID,
})
if err != nil {
log.Println("database error 4:", err)
log.Println("api.go:1250 database error:", err)
return &ErrInternalError
}
@@ -1264,7 +1264,7 @@ func GetTrustedUsers(ctx context.Context, sess *session.Session) packet.Payload
trustedRows, err := queries.GetTrustedUsers(ctx, sess.ID())
if err != nil && err != sql.ErrNoRows {
log.Println("database error 0:", err)
log.Println("api.go:1267 database error:", err)
return &ErrInternalError
}
@@ -1294,7 +1294,7 @@ func GetBannedMembers(ctx context.Context, sess *session.Session, request *packe
return &packet.Error{Error: "network doesn't exist"}
}
if err != nil {
log.Println("database error 0:", err)
log.Println("api.go:1297 database error:", err)
return &ErrInternalError
}
@@ -1304,7 +1304,7 @@ func GetBannedMembers(ctx context.Context, sess *session.Session, request *packe
bannedMembersRow, err := queries.GetBannedMembers(ctx, request.Network)
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:1307 database error:", err)
return &ErrInternalError
}
members := make([]data.Member, 0, len(bannedMembersRow))
@@ -1359,13 +1359,13 @@ func SetLastReadMessages(ctx context.Context, sess *session.Session, request *pa
LastRead: request.LastRead[i],
})
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:1362 database error:", err)
return &ErrInternalError
}
continue
}
if err != nil && err != sql.ErrNoRows {
log.Println("database error 2:", err)
log.Println("api.go:1368 database error:", err)
return &ErrInternalError
}
@@ -1376,13 +1376,13 @@ func SetLastReadMessages(ctx context.Context, sess *session.Session, request *pa
)}
}
if err != nil {
log.Println("database error 3:", err)
log.Println("api.go:1379 database error:", err)
return &ErrInternalError
}
if frequency.Perms == packet.PermNoAccess {
isAdmin, err := IsNetworkAdmin(ctx, qtx, sess.ID(), frequency.NetworkID)
if err != nil {
log.Println("database error 4:", err)
log.Println("api.go:1385 database error:", err)
return &ErrInternalError
}
if !isAdmin {
@@ -1396,7 +1396,7 @@ func SetLastReadMessages(ctx context.Context, sess *session.Session, request *pa
LastRead: request.LastRead[i],
})
if err != nil {
log.Println("database error 5:", err)
log.Println("api.go:1399 database error:", err)
return &ErrInternalError
}
continue
@@ -1404,7 +1404,7 @@ func SetLastReadMessages(ctx context.Context, sess *session.Session, request *pa
err = tx.Commit()
if err != nil {
log.Println("database error 6:", err)
log.Println("api.go:1407 database error:", err)
return &ErrInternalError
}
@@ -1423,7 +1423,7 @@ func BlockUser(ctx context.Context, sess *session.Session, request *packet.Block
return &packet.Error{Error: "requested user doesn't exist"}
}
if err != nil {
log.Println("database error 0:", err)
log.Println("api.go:1426 database error:", err)
return &ErrInternalError
}
@@ -1441,7 +1441,7 @@ func BlockUser(ctx context.Context, sess *session.Session, request *packet.Block
}
}
if err != sql.ErrNoRows {
log.Println("database error 1:", err)
log.Println("api.go:1444 database error:", err)
return &ErrInternalError
}
@@ -1450,7 +1450,7 @@ func BlockUser(ctx context.Context, sess *session.Session, request *packet.Block
TrustedUserID: user.ID,
})
if err != nil {
log.Println("database error 2:", err)
log.Println("api.go:1453 database error:", err)
return &ErrInternalError
}
@@ -1459,7 +1459,7 @@ func BlockUser(ctx context.Context, sess *session.Session, request *packet.Block
BlockedUserID: user.ID,
})
if err != nil {
log.Println("database error 3:", err)
log.Println("api.go:1462 database error:", err)
return &ErrInternalError
}
@@ -1490,7 +1490,7 @@ func BlockUser(ctx context.Context, sess *session.Session, request *packet.Block
}
}
if err != nil {
log.Println("database error 4:", err)
log.Println("api.go:1493 database error:", err)
return &ErrInternalError
}
@@ -1499,7 +1499,7 @@ func BlockUser(ctx context.Context, sess *session.Session, request *packet.Block
BlockedUserID: user.ID,
})
if err != nil {
log.Println("database error 5:", err)
log.Println("api.go:1502 database error:", err)
return &ErrInternalError
}
@@ -1524,13 +1524,13 @@ func GetBlockedUsers(ctx context.Context, sess *session.Session) packet.Payload
blockedUsers, err := queries.GetBlockedUsers(ctx, sess.ID())
if err != nil && err != sql.ErrNoRows {
log.Println("database error 0:", err)
log.Println("api.go:1527 database error:", err)
return &ErrInternalError
}
blockingUsers, err := queries.GetBlockingUsers(ctx, sess.ID())
if err != nil && err != sql.ErrNoRows {
log.Println("database error 1:", err)
log.Println("api.go:1533 database error:", err)
return &ErrInternalError
}
@@ -1552,7 +1552,7 @@ func GetUsers(ctx context.Context, sess *session.Session, request *packet.GetUse
queries := data.New(db)
users, err := queries.GetUsersByIds(ctx, request.Users)
if err != nil {
log.Println("database error 1:", err)
log.Println("api.go:1555 database error:", err)
return &ErrInternalError
}