Normalise floats (don't use Inf in JSON)
This commit is contained in:
parent
2afc557ef8
commit
330757ec78
|
@ -4,6 +4,7 @@ package peppy
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math"
|
||||||
|
|
||||||
"git.zxq.co/ripple/ocl"
|
"git.zxq.co/ripple/ocl"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
@ -49,5 +50,12 @@ func GetUser(c *gin.Context, db *sql.DB) {
|
||||||
}
|
}
|
||||||
user.Level = ocl.GetLevelPrecise(user.TotalScore)
|
user.Level = ocl.GetLevelPrecise(user.TotalScore)
|
||||||
|
|
||||||
|
if math.IsInf(user.Accuracy, 0) {
|
||||||
|
user.Accuracy = 0
|
||||||
|
}
|
||||||
|
if math.IsInf(user.Level, 0) {
|
||||||
|
user.Level = 0
|
||||||
|
}
|
||||||
|
|
||||||
c.JSON(200, []osuapi.User{user})
|
c.JSON(200, []osuapi.User{user})
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package v1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"math"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
@ -129,6 +130,17 @@ type modeData struct {
|
||||||
PP int `json:"pp"`
|
PP int `json:"pp"`
|
||||||
GlobalLeaderboardRank int `json:"global_leaderboard_rank"`
|
GlobalLeaderboardRank int `json:"global_leaderboard_rank"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m modeData) Normalise() modeData {
|
||||||
|
if math.IsInf(m.Level, 0) {
|
||||||
|
m.Level = 0
|
||||||
|
}
|
||||||
|
if math.IsInf(m.Accuracy, 0) {
|
||||||
|
m.Accuracy = 0
|
||||||
|
}
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
type userFullResponse struct {
|
type userFullResponse struct {
|
||||||
common.ResponseBase
|
common.ResponseBase
|
||||||
userData
|
userData
|
||||||
|
|
Loading…
Reference in New Issue
Block a user