From c423498eb5b4d252df2b7e17f5d79b1c136dfcc8 Mon Sep 17 00:00:00 2001 From: kkumar-gcc Date: Thu, 19 Dec 2024 01:55:03 +0530 Subject: [PATCH 1/3] add abort method --- context_response.go | 8 ++++---- response.go | 8 ++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/context_response.go b/context_response.go index e3f8b92..ecbf4a6 100644 --- a/context_response.go +++ b/context_response.go @@ -64,7 +64,7 @@ func (r *ContextResponse) Header(key, value string) contractshttp.ContextRespons return r } -func (r *ContextResponse) Json(code int, obj any) contractshttp.Response { +func (r *ContextResponse) Json(code int, obj any) contractshttp.AbortResponse { return &JsonResponse{code, obj, r.instance} } @@ -84,7 +84,7 @@ func (r *ContextResponse) Redirect(code int, location string) contractshttp.Resp return &RedirectResponse{code, location, r.instance} } -func (r *ContextResponse) String(code int, format string, values ...any) contractshttp.Response { +func (r *ContextResponse) String(code int, format string, values ...any) contractshttp.AbortResponse { return &StringResponse{code, format, r.instance, values} } @@ -209,11 +209,11 @@ func (r *Status) Data(contentType string, data []byte) contractshttp.Response { return &DataResponse{r.status, contentType, data, r.instance} } -func (r *Status) Json(obj any) contractshttp.Response { +func (r *Status) Json(obj any) contractshttp.AbortResponse { return &JsonResponse{r.status, obj, r.instance} } -func (r *Status) String(format string, values ...any) contractshttp.Response { +func (r *Status) String(format string, values ...any) contractshttp.AbortResponse { return &StringResponse{r.status, format, r.instance, values} } diff --git a/response.go b/response.go index 63dae9a..1a477ab 100644 --- a/response.go +++ b/response.go @@ -71,6 +71,10 @@ func (r *JsonResponse) Render() error { return r.instance.Status(r.code).JSON(r.obj) } +func (r *JsonResponse) Abort() error { + return nil +} + type NoContentResponse struct { code int instance *fiber.Ctx @@ -118,6 +122,10 @@ func (r *StringResponse) Render() error { return r.instance.Status(r.code).SendString(r.values[0].(string)) } +func (r *StringResponse) Abort() error { + return nil +} + type HtmlResponse struct { data any instance *fiber.Ctx From 2994907da2ce2c27b8b2f437a5508272f71c3b00 Mon Sep 17 00:00:00 2001 From: kkumar-gcc Date: Sun, 29 Dec 2024 01:43:20 +0530 Subject: [PATCH 2/3] add abort method --- context_response.go | 16 ++++++++-------- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- response.go | 16 ++++++++++++++-- 4 files changed, 37 insertions(+), 25 deletions(-) diff --git a/context_response.go b/context_response.go index ecbf4a6..e727fb0 100644 --- a/context_response.go +++ b/context_response.go @@ -46,7 +46,7 @@ func (r *ContextResponse) Cookie(cookie contractshttp.Cookie) contractshttp.Cont return r } -func (r *ContextResponse) Data(code int, contentType string, data []byte) contractshttp.Response { +func (r *ContextResponse) Data(code int, contentType string, data []byte) contractshttp.ResponseWithAbort { return &DataResponse{code, contentType, data, r.instance} } @@ -64,11 +64,11 @@ func (r *ContextResponse) Header(key, value string) contractshttp.ContextRespons return r } -func (r *ContextResponse) Json(code int, obj any) contractshttp.AbortResponse { +func (r *ContextResponse) Json(code int, obj any) contractshttp.ResponseWithAbort { return &JsonResponse{code, obj, r.instance} } -func (r *ContextResponse) NoContent(code ...int) contractshttp.Response { +func (r *ContextResponse) NoContent(code ...int) contractshttp.ResponseWithAbort { if len(code) == 0 { code = append(code, http.StatusNoContent) } @@ -80,11 +80,11 @@ func (r *ContextResponse) Origin() contractshttp.ResponseOrigin { return r.origin } -func (r *ContextResponse) Redirect(code int, location string) contractshttp.Response { +func (r *ContextResponse) Redirect(code int, location string) contractshttp.ResponseWithAbort { return &RedirectResponse{code, location, r.instance} } -func (r *ContextResponse) String(code int, format string, values ...any) contractshttp.AbortResponse { +func (r *ContextResponse) String(code int, format string, values ...any) contractshttp.ResponseWithAbort { return &StringResponse{code, format, r.instance, values} } @@ -205,15 +205,15 @@ func NewStatus(instance *fiber.Ctx, code int) contractshttp.ResponseStatus { return &Status{instance, code} } -func (r *Status) Data(contentType string, data []byte) contractshttp.Response { +func (r *Status) Data(contentType string, data []byte) contractshttp.ResponseWithAbort { return &DataResponse{r.status, contentType, data, r.instance} } -func (r *Status) Json(obj any) contractshttp.AbortResponse { +func (r *Status) Json(obj any) contractshttp.ResponseWithAbort { return &JsonResponse{r.status, obj, r.instance} } -func (r *Status) String(format string, values ...any) contractshttp.AbortResponse { +func (r *Status) String(format string, values ...any) contractshttp.ResponseWithAbort { return &StringResponse{r.status, format, r.instance, values} } diff --git a/go.mod b/go.mod index 52d8191..96f5548 100644 --- a/go.mod +++ b/go.mod @@ -7,10 +7,10 @@ toolchain go1.23.4 require ( github.com/gofiber/fiber/v2 v2.52.5 github.com/gofiber/template/html/v2 v2.1.2 - github.com/gookit/validate v1.5.3 + github.com/gookit/validate v1.5.4 github.com/goravel/framework v1.14.1-0.20241217035357-003a28740efe github.com/savioxavier/termlink v1.4.1 - github.com/spf13/cast v1.7.0 + github.com/spf13/cast v1.7.1 github.com/stretchr/testify v1.10.0 github.com/valyala/fasthttp v1.58.0 ) @@ -72,7 +72,7 @@ require ( github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect github.com/googleapis/gax-go/v2 v2.12.3 // indirect github.com/gookit/color v1.5.4 // indirect - github.com/gookit/filter v1.2.1 // indirect + github.com/gookit/filter v1.2.2 // indirect github.com/gookit/goutil v0.6.18 // indirect github.com/goravel/file-rotatelogs/v2 v2.4.2 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -143,7 +143,7 @@ require ( go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.9.0 // indirect golang.org/x/crypto v0.31.0 // indirect - golang.org/x/exp v0.0.0-20241215155358-4a5509556b9e // indirect + golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 // indirect golang.org/x/net v0.31.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.10.0 // indirect @@ -155,7 +155,7 @@ require ( google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 // indirect - google.golang.org/grpc v1.69.0 // indirect + google.golang.org/grpc v1.69.2 // indirect google.golang.org/protobuf v1.35.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 1b04280..9ba2eab 100644 --- a/go.sum +++ b/go.sum @@ -349,12 +349,12 @@ github.com/gookit/color v1.4.2/go.mod h1:fqRyamkC1W8uxl+lxCQxOT09l/vYfZ+QeiX3rKQ github.com/gookit/color v1.5.0/go.mod h1:43aQb+Zerm/BWh2GnrgOQm7ffz7tvQXEKV6BFMl7wAo= github.com/gookit/color v1.5.4 h1:FZmqs7XOyGgCAxmWyPslpiok1k05wmY3SJTytgvYFs0= github.com/gookit/color v1.5.4/go.mod h1:pZJOeOS8DM43rXbp4AZo1n9zCU2qjpcRko0b6/QJi9w= -github.com/gookit/filter v1.2.1 h1:37XivkBm2E5qe1KaGdJ5ZfF5l9NYdGWfLEeQadJD8O4= -github.com/gookit/filter v1.2.1/go.mod h1:rxynQFr793x+XDwnRmJFEb53zDw0Zqx3OD7TXWoR9mQ= +github.com/gookit/filter v1.2.2 h1:LSBQLk4M4fpfhaOG0hJ/GJ+qu+2+lLddgxlGfzcd8VQ= +github.com/gookit/filter v1.2.2/go.mod h1:y4xpiqM/fV9g9yT/Vg5OWUq4q9siPj0UlH9O57xYuGs= github.com/gookit/goutil v0.6.18 h1:MUVj0G16flubWT8zYVicIuisUiHdgirPAkmnfD2kKgw= github.com/gookit/goutil v0.6.18/go.mod h1:AY/5sAwKe7Xck+mEbuxj0n/bc3qwrGNe3Oeulln7zBA= -github.com/gookit/validate v1.5.3 h1:czD1H+fcOJX+dfY0vzjHSMb+jrKTMeI8Fhu59ZMIB9o= -github.com/gookit/validate v1.5.3/go.mod h1:1OfvI1eGJqSODHERKdxvPGcconT4eTvVLmYt1A3QZlI= +github.com/gookit/validate v1.5.4 h1:nwBo6vULnVUeNFCOde6RKFRbOCKJXVMnWR0ghedacLg= +github.com/gookit/validate v1.5.4/go.mod h1:p9sRPfpvYB4vXICBpEPzv8FoAky+XhUOhWQghgmmat4= github.com/goravel/file-rotatelogs/v2 v2.4.2 h1:g68AzbePXcm0V2CpUMc9j4qVzcDn7+7aoWSjZ51C0m4= github.com/goravel/file-rotatelogs/v2 v2.4.2/go.mod h1:23VuSW8cBS4ax5cmbV+5AaiLpq25b8UJ96IhbAkdo8I= github.com/goravel/framework v1.14.1-0.20241217035357-003a28740efe h1:i8rVlwV4VeR5492mI8lRsxNLfIoLhRAtF8zfvPf3KZA= @@ -543,8 +543,8 @@ github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9yS github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= -github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -671,8 +671,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20241215155358-4a5509556b9e h1:4qufH0hlUYs6AO6XmZC3GqfDPGSXHVXUFR6OND+iJX4= -golang.org/x/exp v0.0.0-20241215155358-4a5509556b9e/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= +golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 h1:1UoZQm6f0P/ZO0w1Ri+f+ifG/gXhegadRdwBIXEFWDo= +golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1019,8 +1019,8 @@ google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.69.0 h1:quSiOM1GJPmPH5XtU+BCoVXcDVJJAzNcoyfC2cCjGkI= -google.golang.org/grpc v1.69.0/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU= +google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/response.go b/response.go index 1a477ab..b4cf481 100644 --- a/response.go +++ b/response.go @@ -26,6 +26,10 @@ func (r *DataResponse) Render() error { return r.instance.Status(r.code).Send(r.data) } +func (r *DataResponse) Abort() error { + return r.Render() +} + type DownloadResponse struct { filename string filepath string @@ -72,7 +76,7 @@ func (r *JsonResponse) Render() error { } func (r *JsonResponse) Abort() error { - return nil + return r.Render() } type NoContentResponse struct { @@ -88,6 +92,10 @@ func (r *NoContentResponse) Render() error { return r.instance.Status(r.code).Send(nil) } +func (r *NoContentResponse) Abort() error { + return r.Render() +} + type RedirectResponse struct { code int location string @@ -102,6 +110,10 @@ func (r *RedirectResponse) Render() error { return r.instance.Redirect(r.location, r.code) } +func (r *RedirectResponse) Abort() error { + return r.Render() +} + type StringResponse struct { code int format string @@ -123,7 +135,7 @@ func (r *StringResponse) Render() error { } func (r *StringResponse) Abort() error { - return nil + return r.Render() } type HtmlResponse struct { From ab6ff754448bf59177bb5a9164e12334c42cae1f Mon Sep 17 00:00:00 2001 From: kkumar-gcc Date: Sun, 29 Dec 2024 13:47:34 +0530 Subject: [PATCH 3/3] update framework --- context_response.go | 16 ++++++++-------- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/context_response.go b/context_response.go index e727fb0..0520d04 100644 --- a/context_response.go +++ b/context_response.go @@ -46,7 +46,7 @@ func (r *ContextResponse) Cookie(cookie contractshttp.Cookie) contractshttp.Cont return r } -func (r *ContextResponse) Data(code int, contentType string, data []byte) contractshttp.ResponseWithAbort { +func (r *ContextResponse) Data(code int, contentType string, data []byte) contractshttp.AbortableResponse { return &DataResponse{code, contentType, data, r.instance} } @@ -64,11 +64,11 @@ func (r *ContextResponse) Header(key, value string) contractshttp.ContextRespons return r } -func (r *ContextResponse) Json(code int, obj any) contractshttp.ResponseWithAbort { +func (r *ContextResponse) Json(code int, obj any) contractshttp.AbortableResponse { return &JsonResponse{code, obj, r.instance} } -func (r *ContextResponse) NoContent(code ...int) contractshttp.ResponseWithAbort { +func (r *ContextResponse) NoContent(code ...int) contractshttp.AbortableResponse { if len(code) == 0 { code = append(code, http.StatusNoContent) } @@ -80,11 +80,11 @@ func (r *ContextResponse) Origin() contractshttp.ResponseOrigin { return r.origin } -func (r *ContextResponse) Redirect(code int, location string) contractshttp.ResponseWithAbort { +func (r *ContextResponse) Redirect(code int, location string) contractshttp.AbortableResponse { return &RedirectResponse{code, location, r.instance} } -func (r *ContextResponse) String(code int, format string, values ...any) contractshttp.ResponseWithAbort { +func (r *ContextResponse) String(code int, format string, values ...any) contractshttp.AbortableResponse { return &StringResponse{code, format, r.instance, values} } @@ -205,15 +205,15 @@ func NewStatus(instance *fiber.Ctx, code int) contractshttp.ResponseStatus { return &Status{instance, code} } -func (r *Status) Data(contentType string, data []byte) contractshttp.ResponseWithAbort { +func (r *Status) Data(contentType string, data []byte) contractshttp.AbortableResponse { return &DataResponse{r.status, contentType, data, r.instance} } -func (r *Status) Json(obj any) contractshttp.ResponseWithAbort { +func (r *Status) Json(obj any) contractshttp.AbortableResponse { return &JsonResponse{r.status, obj, r.instance} } -func (r *Status) String(format string, values ...any) contractshttp.ResponseWithAbort { +func (r *Status) String(format string, values ...any) contractshttp.AbortableResponse { return &StringResponse{r.status, format, r.instance, values} } diff --git a/go.mod b/go.mod index 96f5548..30e5f35 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/gofiber/fiber/v2 v2.52.5 github.com/gofiber/template/html/v2 v2.1.2 github.com/gookit/validate v1.5.4 - github.com/goravel/framework v1.14.1-0.20241217035357-003a28740efe + github.com/goravel/framework v1.14.1-0.20241229081312-7de6cc0c5866 github.com/savioxavier/termlink v1.4.1 github.com/spf13/cast v1.7.1 github.com/stretchr/testify v1.10.0 diff --git a/go.sum b/go.sum index 9ba2eab..a2e907e 100644 --- a/go.sum +++ b/go.sum @@ -357,8 +357,8 @@ github.com/gookit/validate v1.5.4 h1:nwBo6vULnVUeNFCOde6RKFRbOCKJXVMnWR0ghedacLg github.com/gookit/validate v1.5.4/go.mod h1:p9sRPfpvYB4vXICBpEPzv8FoAky+XhUOhWQghgmmat4= github.com/goravel/file-rotatelogs/v2 v2.4.2 h1:g68AzbePXcm0V2CpUMc9j4qVzcDn7+7aoWSjZ51C0m4= github.com/goravel/file-rotatelogs/v2 v2.4.2/go.mod h1:23VuSW8cBS4ax5cmbV+5AaiLpq25b8UJ96IhbAkdo8I= -github.com/goravel/framework v1.14.1-0.20241217035357-003a28740efe h1:i8rVlwV4VeR5492mI8lRsxNLfIoLhRAtF8zfvPf3KZA= -github.com/goravel/framework v1.14.1-0.20241217035357-003a28740efe/go.mod h1:y4I8sLmuqf3jRKMvALwF3HB4ttKBFsZBLMBLkkfGoXg= +github.com/goravel/framework v1.14.1-0.20241229081312-7de6cc0c5866 h1:Xz7jgacMzIN8mVzORo5xDlorANNnSDt54BhVtQ2ppM8= +github.com/goravel/framework v1.14.1-0.20241229081312-7de6cc0c5866/go.mod h1:Qo5Xlf+slrosyMxBKbNoxpEmzB6y2C5FI4BHNdVOSyI= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=