Normalise floats (don't use Inf in JSON)

This commit is contained in:
Howl 2016-05-18 17:48:19 +02:00
parent 2afc557ef8
commit 330757ec78
2 changed files with 20 additions and 0 deletions

View File

@ -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})
} }

View File

@ -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