3
0

add capitalization for named paths

This commit is contained in:
Tit Petric 2018-07-05 13:51:51 +02:00
parent c35897cb01
commit 1e46a4549a
6 changed files with 18 additions and 13 deletions

View File

@ -5,6 +5,11 @@ error_reporting(E_ALL^E_NOTICE);
include("docs/vendor/autoload.php");
function capitalize($name) {
$names = explode("/", $name);
return implode("", array_map("ucfirst", $names));
}
function array_change_key_case_recursive($arr) {
return array_map(function ($item) {
if (is_array($item)) {

View File

@ -7,7 +7,7 @@ import (
var _ = errors.Wrap
{foreach $calls as $call}
func (*{name}) {call.name|ucfirst}(r *{name|lcfirst}{call.name|ucfirst}Request) (interface{}, error) {
func (*{name}) {call.name|capitalize}(r *{name|lcfirst}{call.name|capitalize}Request) (interface{}, error) {
return nil, errors.New("Not implemented: {name}.{call.name}")
}

View File

@ -7,8 +7,8 @@ import (
)
{foreach $calls as $call}
func ({self}h *{name}Handlers) {call.name|ucfirst}(w http.ResponseWriter, r *http.Request) {
params := {name|lcfirst}{call.name|ucfirst}Request{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return {self}h.{name}.{call.name|ucfirst}(params) })
func ({self}h *{name}Handlers) {call.name|capitalize}(w http.ResponseWriter, r *http.Request) {
params := {name|lcfirst}{call.name|capitalize}Request{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return {self}h.{name}.{call.name|capitalize}(params) })
}
{/foreach}

View File

@ -18,14 +18,14 @@ func ({name}Handlers) new() *{name}Handlers {
// Internal API interface
type {name}API interface {
{foreach $calls as $call}
{call.name|ucfirst}(*{name|lcfirst}{call.name|ucfirst}Request) (interface{}, error)
{call.name|capitalize}(*{name|lcfirst}{call.name|capitalize}Request) (interface{}, error)
{/foreach}
}
// HTTP API interface
type {name}HandlersAPI interface {
{foreach $calls as $call}
{call.name|ucfirst}(http.ResponseWriter, *http.Request)
{call.name|capitalize}(http.ResponseWriter, *http.Request)
{/foreach}
}

View File

@ -9,7 +9,7 @@ var _ = chi.URLParam
{foreach $calls as $call}
// {name} {call.name} request parameters
type {name|lcfirst}{call.name|ucfirst}Request struct {
type {name|lcfirst}{call.name|capitalize}Request struct {
{foreach $call.parameters as $params}
{foreach $params as $method => $param}
{param.name} {param.type}{newline}
@ -17,11 +17,11 @@ type {name|lcfirst}{call.name|ucfirst}Request struct {
{/foreach}
}
func ({name|lcfirst}{call.name|ucfirst}Request) new() *{name|lcfirst}{call.name|ucfirst}Request {
return &{name|lcfirst}{call.name|ucfirst}Request{}
func ({name|lcfirst}{call.name|capitalize}Request) new() *{name|lcfirst}{call.name|capitalize}Request {
return &{name|lcfirst}{call.name|capitalize}Request{}
}
func ({self} *{name|lcfirst}{call.name|ucfirst}Request) Fill(r *http.Request) error {
func ({self} *{name|lcfirst}{call.name|capitalize}Request) Fill(r *http.Request) error {
get := map[string]string{}
post := map[string]string{}
urlQuery := r.URL.Query()
@ -44,5 +44,5 @@ func ({self} *{name|lcfirst}{call.name|ucfirst}Request) Fill(r *http.Request) er
return nil
}
var _ RequestFiller = {name|lcfirst}{call.name|ucfirst}Request{}.new()
var _ RequestFiller = {name|lcfirst}{call.name|capitalize}Request{}.new()
{/foreach}

View File

@ -6,12 +6,12 @@ import (
func MountRoutes(r chi.Router) {
{foreach $apis as $api}
{api.interface|strtolower} := {api.interface|ucfirst}Handlers{}.new()
{api.interface|strtolower} := {api.interface|capitalize}Handlers{}.new()
{/foreach}
{foreach $apis as $api}
r.Route("{api.path}", func(r chi.Router) {
{foreach $api.apis as $call}
r.{eval echo ucfirst(strtolower($call.method))}("{call.path}", {api.interface|strtolower}.{call.name|ucfirst})
r.{eval echo capitalize(strtolower($call.method))}("{call.path}", {api.interface|strtolower}.{call.name|capitalize})
{/foreach}
})
{/foreach}