From d45e0da6a891e7394e2b64417410cee50cb9e206 Mon Sep 17 00:00:00 2001 From: Jannis Mattheis Date: Wed, 24 Jun 2020 19:42:07 +0200 Subject: [PATCH] Allow delete for > uint32 ids For ids uint is used, this is platform specific and either uint32 or uint64. The parsing for parameters in the api expected the ids to have 32bit size. I thought about changing all our ids to int64 but we sadly have one uint usage in the plugin api: https://github.com/gotify/plugin-api/blob/b0e2eca8e35526b0c02fdb5e2179a92bb8cb457f/plugin.go#L13-L14 --- api/internalutil.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api/internalutil.go b/api/internalutil.go index 659bb1a..3bde756 100644 --- a/api/internalutil.go +++ b/api/internalutil.go @@ -2,13 +2,14 @@ package api import ( "errors" + "math/bits" "strconv" "github.com/gin-gonic/gin" ) func withID(ctx *gin.Context, name string, f func(id uint)) { - if id, err := strconv.ParseUint(ctx.Param(name), 10, 32); err == nil { + if id, err := strconv.ParseUint(ctx.Param(name), 10, bits.UintSize); err == nil { f(uint(id)) } else { ctx.AbortWithError(400, errors.New("invalid id"))