You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
743 B
Go
27 lines
743 B
Go
package db
|
|
|
|
func TryAddSeedCompletion(uuid []byte, seed string, mode int, score int) (bool, error) {
|
|
if len(seed) < 24 {
|
|
for range 24 - len(seed) {
|
|
seed += "0"
|
|
}
|
|
}
|
|
|
|
newCompletion := true
|
|
|
|
var count int
|
|
err := handle.QueryRow("SELECT COUNT(*) FROM seedCompletions WHERE uuid = ? AND seed = ?", uuid, seed).Scan(&count)
|
|
if err != nil {
|
|
return false, err
|
|
} else if count > 0 {
|
|
newCompletion = false
|
|
}
|
|
|
|
_, err = handle.Exec("INSERT INTO seedCompletions (uuid, seed, mode, score, timestamp) VALUES (?, ?, ?, ?, UTC_TIMESTAMP()) ON DUPLICATE KEY UPDATE score = ?, timestamp = IF(score < ?, UTC_TIMESTAMP(), timestamp)", uuid, seed, mode, score, score, score)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
|
|
return newCompletion, nil
|
|
}
|