3
0

upd(codegen): close request body, parse body as json

This commit is contained in:
Tit Petric 2018-09-02 21:34:41 +02:00
parent 4e4670ff40
commit bb02b827de
2 changed files with 7 additions and 2 deletions

View File

@ -30,6 +30,7 @@ func New{name}({self}h {name}API) *{name} {
return &{name}{ldelim}{newline} return &{name}{ldelim}{newline}
{foreach $calls as $call} {foreach $calls as $call}
{call.name|capitalize}: func(w http.ResponseWriter, r *http.Request) { {call.name|capitalize}: func(w http.ResponseWriter, r *http.Request) {
defer r.Body.Close()
params := request.New{name|capitalize}{call.name|capitalize}() params := request.New{name|capitalize}{call.name|capitalize}()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { resputil.JSON(w, params.Fill(r), func() (interface{}, error) {
return {self}h.{call.name|capitalize}(r.Context(), params) return {self}h.{call.name|capitalize}(r.Context(), params)

View File

@ -4,6 +4,7 @@ package {package}
import ( import (
"net/http" "net/http"
"encoding/json"
"github.com/go-chi/chi" "github.com/go-chi/chi"
) )
@ -24,6 +25,8 @@ func New{name|expose}{call.name|capitalize}() *{name|expose}{call.name|capitaliz
} }
func ({self} *{name|expose}{call.name|capitalize}) Fill(r *http.Request) error { func ({self} *{name|expose}{call.name|capitalize}) Fill(r *http.Request) error {
json.NewDecoder(r.Body).Decode({self})
r.ParseForm() r.ParseForm()
get := map[string]string{} get := map[string]string{}
post := map[string]string{} post := map[string]string{}
@ -40,8 +43,9 @@ func ({self} *{name|expose}{call.name|capitalize}) Fill(r *http.Request) error {
{if strtolower($method) === "path"} {if strtolower($method) === "path"}
{self}.{param.name|expose} = {if ($param.type !== "string")}{$parsers[$param.type]}({/if}chi.URLParam(r, "{param.name}"){if ($param.type !== "string")}){/if} {self}.{param.name|expose} = {if ($param.type !== "string")}{$parsers[$param.type]}({/if}chi.URLParam(r, "{param.name}"){if ($param.type !== "string")}){/if}
{elseif substr($param.type, 0, 2) !== '[]'} {elseif substr($param.type, 0, 2) !== '[]'}
{self}.{param.name|expose} = {if ($param.type !== "string")}{$parsers[$param.type]}({method|strtolower}["{param.name}"]){else}{method|strtolower}["{param.name}"]{/if} if val, ok := {method|strtolower}["{param.name}"]; ok {
{/if} {self}.{param.name|expose} = {if ($param.type !== "string")}{$parsers[$param.type]}(val){else}val{/if}
}{/if}
{/foreach} {/foreach}
{/foreach}{newline} {/foreach}{newline}
return nil return nil