1
0
api/ent/ogent/oas_router_gen.go
2022-08-31 15:18:14 +09:00

468 lines
8.2 KiB
Go

// Code generated by ogen, DO NOT EDIT.
package ogent
import (
"bytes"
"context"
"fmt"
"io"
"math"
"math/big"
"math/bits"
"net"
"net/http"
"net/url"
"regexp"
"sort"
"strconv"
"strings"
"sync"
"time"
"github.com/go-faster/errors"
"github.com/go-faster/jx"
"github.com/google/uuid"
"github.com/ogen-go/ogen/conv"
ht "github.com/ogen-go/ogen/http"
"github.com/ogen-go/ogen/json"
"github.com/ogen-go/ogen/otelogen"
"github.com/ogen-go/ogen/uri"
"github.com/ogen-go/ogen/validate"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes"
"go.opentelemetry.io/otel/metric"
"go.opentelemetry.io/otel/trace"
)
// No-op definition for keeping imports.
var (
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = sort.Ints
_ = http.MethodGet
_ = io.Copy
_ = json.Marshal
_ = bytes.NewReader
_ = strconv.ParseInt
_ = time.Time{}
_ = conv.ToInt32
_ = uuid.UUID{}
_ = uri.PathEncoder{}
_ = url.URL{}
_ = math.Mod
_ = bits.LeadingZeros64
_ = big.Rat{}
_ = validate.Int{}
_ = ht.NewRequest
_ = net.IP{}
_ = otelogen.Version
_ = attribute.KeyValue{}
_ = trace.TraceIDFromHex
_ = otel.GetTracerProvider
_ = metric.NewNoopMeterProvider
_ = regexp.MustCompile
_ = jx.Null
_ = sync.Pool{}
_ = codes.Unset
)
func (s *Server) notFound(w http.ResponseWriter, r *http.Request) {
s.cfg.NotFound(w, r)
}
// ServeHTTP serves http request as defined by OpenAPI v3 specification,
// calling handler that matches the path or returning not found error.
func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
elem := r.URL.Path
if len(elem) == 0 {
s.notFound(w, r)
return
}
args := [1]string{}
// Static code generated router with unwrapped path search.
switch r.Method {
case "DELETE":
if len(elem) == 0 {
break
}
switch elem[0] {
case '/': // Prefix: "/users/"
if l := len("/users/"); len(elem) >= l && elem[0:l] == "/users/" {
elem = elem[l:]
} else {
break
}
// Param: "id"
// Leaf parameter
args[0] = elem
elem = ""
if len(elem) == 0 {
// Leaf: DeleteUsers
s.handleDeleteUsersRequest([1]string{
args[0],
}, w, r)
return
}
}
case "GET":
if len(elem) == 0 {
break
}
switch elem[0] {
case '/': // Prefix: "/users"
if l := len("/users"); len(elem) >= l && elem[0:l] == "/users" {
elem = elem[l:]
} else {
break
}
if len(elem) == 0 {
s.handleListUsersRequest([0]string{}, w, r)
return
}
switch elem[0] {
case '/': // Prefix: "/"
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
break
}
// Param: "id"
// Leaf parameter
args[0] = elem
elem = ""
if len(elem) == 0 {
// Leaf: ReadUsers
s.handleReadUsersRequest([1]string{
args[0],
}, w, r)
return
}
}
}
case "PATCH":
if len(elem) == 0 {
break
}
switch elem[0] {
case '/': // Prefix: "/users/"
if l := len("/users/"); len(elem) >= l && elem[0:l] == "/users/" {
elem = elem[l:]
} else {
break
}
// Param: "id"
// Match until "/"
idx := strings.IndexByte(elem, '/')
if idx < 0 {
idx = len(elem)
}
args[0] = elem[:idx]
elem = elem[idx:]
if len(elem) == 0 {
s.handleUpdateUsersRequest([1]string{
args[0],
}, w, r)
return
}
switch elem[0] {
case '/': // Prefix: "/start"
if l := len("/start"); len(elem) >= l && elem[0:l] == "/start" {
elem = elem[l:]
} else {
break
}
if len(elem) == 0 {
// Leaf: DrawStart
s.handleDrawStartRequest([1]string{
args[0],
}, w, r)
return
}
}
}
case "POST":
if len(elem) == 0 {
break
}
switch elem[0] {
case '/': // Prefix: "/users"
if l := len("/users"); len(elem) >= l && elem[0:l] == "/users" {
elem = elem[l:]
} else {
break
}
if len(elem) == 0 {
// Leaf: CreateUsers
s.handleCreateUsersRequest([0]string{}, w, r)
return
}
}
case "PUT":
if len(elem) == 0 {
break
}
switch elem[0] {
case '/': // Prefix: "/users/"
if l := len("/users/"); len(elem) >= l && elem[0:l] == "/users/" {
elem = elem[l:]
} else {
break
}
// Param: "id"
// Match until "/"
idx := strings.IndexByte(elem, '/')
if idx < 0 {
idx = len(elem)
}
args[0] = elem[:idx]
elem = elem[idx:]
if len(elem) == 0 {
break
}
switch elem[0] {
case '/': // Prefix: "/d"
if l := len("/d"); len(elem) >= l && elem[0:l] == "/d" {
elem = elem[l:]
} else {
break
}
if len(elem) == 0 {
// Leaf: DrawDone
s.handleDrawDoneRequest([1]string{
args[0],
}, w, r)
return
}
}
}
}
s.notFound(w, r)
}
// Route is route object.
type Route struct {
name string
count int
args [1]string
}
// OperationID returns OpenAPI operationId.
func (r Route) OperationID() string {
return r.name
}
// Args returns parsed arguments.
func (r Route) Args() []string {
return r.args[:r.count]
}
// FindRoute finds Route for given method and path.
func (s *Server) FindRoute(method, path string) (r Route, _ bool) {
var (
args = [1]string{}
elem = path
)
r.args = args
if elem == "" {
return r, false
}
// Static code generated router with unwrapped path search.
switch method {
case "DELETE":
if len(elem) == 0 {
break
}
switch elem[0] {
case '/': // Prefix: "/users/"
if l := len("/users/"); len(elem) >= l && elem[0:l] == "/users/" {
elem = elem[l:]
} else {
break
}
// Param: "id"
// Leaf parameter
args[0] = elem
elem = ""
if len(elem) == 0 {
// Leaf: DeleteUsers
r.name = "DeleteUsers"
r.args = args
r.count = 1
return r, true
}
}
case "GET":
if len(elem) == 0 {
break
}
switch elem[0] {
case '/': // Prefix: "/users"
if l := len("/users"); len(elem) >= l && elem[0:l] == "/users" {
elem = elem[l:]
} else {
break
}
if len(elem) == 0 {
r.name = "ListUsers"
r.args = args
r.count = 0
return r, true
}
switch elem[0] {
case '/': // Prefix: "/"
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
break
}
// Param: "id"
// Leaf parameter
args[0] = elem
elem = ""
if len(elem) == 0 {
// Leaf: ReadUsers
r.name = "ReadUsers"
r.args = args
r.count = 1
return r, true
}
}
}
case "PATCH":
if len(elem) == 0 {
break
}
switch elem[0] {
case '/': // Prefix: "/users/"
if l := len("/users/"); len(elem) >= l && elem[0:l] == "/users/" {
elem = elem[l:]
} else {
break
}
// Param: "id"
// Match until "/"
idx := strings.IndexByte(elem, '/')
if idx < 0 {
idx = len(elem)
}
args[0] = elem[:idx]
elem = elem[idx:]
if len(elem) == 0 {
r.name = "UpdateUsers"
r.args = args
r.count = 1
return r, true
}
switch elem[0] {
case '/': // Prefix: "/start"
if l := len("/start"); len(elem) >= l && elem[0:l] == "/start" {
elem = elem[l:]
} else {
break
}
if len(elem) == 0 {
// Leaf: DrawStart
r.name = "DrawStart"
r.args = args
r.count = 1
return r, true
}
}
}
case "POST":
if len(elem) == 0 {
break
}
switch elem[0] {
case '/': // Prefix: "/users"
if l := len("/users"); len(elem) >= l && elem[0:l] == "/users" {
elem = elem[l:]
} else {
break
}
if len(elem) == 0 {
// Leaf: CreateUsers
r.name = "CreateUsers"
r.args = args
r.count = 0
return r, true
}
}
case "PUT":
if len(elem) == 0 {
break
}
switch elem[0] {
case '/': // Prefix: "/users/"
if l := len("/users/"); len(elem) >= l && elem[0:l] == "/users/" {
elem = elem[l:]
} else {
break
}
// Param: "id"
// Match until "/"
idx := strings.IndexByte(elem, '/')
if idx < 0 {
idx = len(elem)
}
args[0] = elem[:idx]
elem = elem[idx:]
if len(elem) == 0 {
break
}
switch elem[0] {
case '/': // Prefix: "/d"
if l := len("/d"); len(elem) >= l && elem[0:l] == "/d" {
elem = elem[l:]
} else {
break
}
if len(elem) == 0 {
// Leaf: DrawDone
r.name = "DrawDone"
r.args = args
r.count = 1
return r, true
}
}
}
}
return r, false
}