openapi: generate

This commit is contained in:
Quaternions 2025-03-18 12:05:52 -07:00
parent 11e801443f
commit 91a72ccf8b
7 changed files with 122 additions and 324 deletions

@ -22,6 +22,11 @@ import (
"github.com/ogen-go/ogen/uri"
)
func trimTrailingSlashes(u *url.URL) {
u.Path = strings.TrimRight(u.Path, "/")
u.RawPath = strings.TrimRight(u.RawPath, "/")
}
// Invoker invokes operations described by OpenAPI v3 specification.
type Invoker interface {
// ActionSubmissionReject invokes actionSubmissionReject operation.
@ -173,11 +178,6 @@ var _ Handler = struct {
*Client
}{}
func trimTrailingSlashes(u *url.URL) {
u.Path = strings.TrimRight(u.Path, "/")
u.RawPath = strings.TrimRight(u.RawPath, "/")
}
// NewClient initializes new Client defined by OAS.
func NewClient(serverURL string, sec SecuritySource, opts ...ClientOption) (*Client, error) {
u, err := url.Parse(serverURL)
@ -1846,39 +1846,6 @@ func (c *Client) sendGetSubmission(ctx context.Context, params GetSubmissionPara
return res, errors.Wrap(err, "create request")
}
{
type bitset = [1]uint8
var satisfied bitset
{
stage = "Security:CookieAuth"
switch err := c.securityCookieAuth(ctx, GetSubmissionOperation, r); {
case err == nil: // if NO error
satisfied[0] |= 1 << 0
case errors.Is(err, ogenerrors.ErrSkipClientSecurity):
// Skip this security.
default:
return res, errors.Wrap(err, "security \"CookieAuth\"")
}
}
if ok := func() bool {
nextRequirement:
for _, requirement := range []bitset{
{0b00000001},
} {
for i, mask := range requirement {
if satisfied[i]&mask != mask {
continue nextRequirement
}
}
return true
}
return false
}(); !ok {
return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied
}
}
stage = "SendRequest"
resp, err := c.cfg.Client.Do(r)
if err != nil {
@ -2444,39 +2411,6 @@ func (c *Client) sendListSubmissions(ctx context.Context, params ListSubmissions
return res, errors.Wrap(err, "create request")
}
{
type bitset = [1]uint8
var satisfied bitset
{
stage = "Security:CookieAuth"
switch err := c.securityCookieAuth(ctx, ListSubmissionsOperation, r); {
case err == nil: // if NO error
satisfied[0] |= 1 << 0
case errors.Is(err, ogenerrors.ErrSkipClientSecurity):
// Skip this security.
default:
return res, errors.Wrap(err, "security \"CookieAuth\"")
}
}
if ok := func() bool {
nextRequirement:
for _, requirement := range []bitset{
{0b00000001},
} {
for i, mask := range requirement {
if satisfied[i]&mask != mask {
continue nextRequirement
}
}
return true
}
return false
}(); !ok {
return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied
}
}
stage = "SendRequest"
resp, err := c.cfg.Client.Do(r)
if err != nil {

@ -2639,52 +2639,6 @@ func (s *Server) handleGetSubmissionRequest(args [1]string, argsEscaped bool, w
ID: "getSubmission",
}
)
{
type bitset = [1]uint8
var satisfied bitset
{
sctx, ok, err := s.securityCookieAuth(ctx, GetSubmissionOperation, r)
if err != nil {
err = &ogenerrors.SecurityError{
OperationContext: opErrContext,
Security: "CookieAuth",
Err: err,
}
if encodeErr := encodeErrorResponse(s.h.NewError(ctx, err), w, span); encodeErr != nil {
defer recordError("Security:CookieAuth", err)
}
return
}
if ok {
satisfied[0] |= 1 << 0
ctx = sctx
}
}
if ok := func() bool {
nextRequirement:
for _, requirement := range []bitset{
{0b00000001},
} {
for i, mask := range requirement {
if satisfied[i]&mask != mask {
continue nextRequirement
}
}
return true
}
return false
}(); !ok {
err = &ogenerrors.SecurityError{
OperationContext: opErrContext,
Err: ogenerrors.ErrSecurityRequirementIsNotSatisfied,
}
if encodeErr := encodeErrorResponse(s.h.NewError(ctx, err), w, span); encodeErr != nil {
defer recordError("Security", err)
}
return
}
}
params, err := decodeGetSubmissionParams(args, argsEscaped, r)
if err != nil {
err = &ogenerrors.DecodeParamsError{
@ -3260,52 +3214,6 @@ func (s *Server) handleListSubmissionsRequest(args [0]string, argsEscaped bool,
ID: "listSubmissions",
}
)
{
type bitset = [1]uint8
var satisfied bitset
{
sctx, ok, err := s.securityCookieAuth(ctx, ListSubmissionsOperation, r)
if err != nil {
err = &ogenerrors.SecurityError{
OperationContext: opErrContext,
Security: "CookieAuth",
Err: err,
}
if encodeErr := encodeErrorResponse(s.h.NewError(ctx, err), w, span); encodeErr != nil {
defer recordError("Security:CookieAuth", err)
}
return
}
if ok {
satisfied[0] |= 1 << 0
ctx = sctx
}
}
if ok := func() bool {
nextRequirement:
for _, requirement := range []bitset{
{0b00000001},
} {
for i, mask := range requirement {
if satisfied[i]&mask != mask {
continue nextRequirement
}
}
return true
}
return false
}(); !ok {
err = &ogenerrors.SecurityError{
OperationContext: opErrContext,
Err: ogenerrors.ErrSecurityRequirementIsNotSatisfied,
}
if encodeErr := encodeErrorResponse(s.h.NewError(ctx, err), w, span); encodeErr != nil {
defer recordError("Security", err)
}
return
}
}
params, err := decodeListSubmissionsParams(args, argsEscaped, r)
if err != nil {
err = &ogenerrors.DecodeParamsError{

@ -840,7 +840,7 @@ func decodeListScriptPolicyParams(args [0]string, argsEscaped bool, r *http.Requ
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {
@ -893,7 +893,7 @@ func decodeListScriptPolicyParams(args [0]string, argsEscaped bool, r *http.Requ
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {
@ -1161,7 +1161,7 @@ func decodeListScriptsParams(args [0]string, argsEscaped bool, r *http.Request)
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {
@ -1214,7 +1214,7 @@ func decodeListScriptsParams(args [0]string, argsEscaped bool, r *http.Request)
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {
@ -1569,7 +1569,7 @@ func decodeListSubmissionsParams(args [0]string, argsEscaped bool, r *http.Reque
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {
@ -1622,7 +1622,7 @@ func decodeListSubmissionsParams(args [0]string, argsEscaped bool, r *http.Reque
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {
@ -2149,7 +2149,7 @@ func decodeUpdateSubmissionModelParams(args [1]string, argsEscaped bool, r *http
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {
@ -2185,7 +2185,7 @@ func decodeUpdateSubmissionModelParams(args [1]string, argsEscaped bool, r *http
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {

@ -50,7 +50,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -62,7 +62,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case 'r': // Prefix: "release-submissions"
origElem := elem
if l := len("release-submissions"); len(elem) >= l && elem[0:l] == "release-submissions" {
elem = elem[l:]
} else {
@ -81,9 +81,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
case 's': // Prefix: "s"
origElem := elem
if l := len("s"); len(elem) >= l && elem[0:l] == "s" {
elem = elem[l:]
} else {
@ -95,7 +94,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case 'c': // Prefix: "cript"
origElem := elem
if l := len("cript"); len(elem) >= l && elem[0:l] == "cript" {
elem = elem[l:]
} else {
@ -107,7 +106,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case '-': // Prefix: "-policy"
origElem := elem
if l := len("-policy"); len(elem) >= l && elem[0:l] == "-policy" {
elem = elem[l:]
} else {
@ -128,7 +127,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -136,7 +135,11 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
// Param: "ScriptPolicyID"
// Leaf parameter
// Leaf parameter, slashes are prohibited
idx := strings.IndexByte(elem, '/')
if idx >= 0 {
break
}
args[0] = elem
elem = ""
@ -162,12 +165,10 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
}
elem = origElem
case 's': // Prefix: "s"
origElem := elem
if l := len("s"); len(elem) >= l && elem[0:l] == "s" {
elem = elem[l:]
} else {
@ -188,7 +189,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -196,7 +197,11 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
// Param: "ScriptID"
// Leaf parameter
// Leaf parameter, slashes are prohibited
idx := strings.IndexByte(elem, '/')
if idx >= 0 {
break
}
args[0] = elem
elem = ""
@ -222,15 +227,12 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
}
elem = origElem
}
elem = origElem
case 'u': // Prefix: "ubmissions"
origElem := elem
if l := len("ubmissions"); len(elem) >= l && elem[0:l] == "ubmissions" {
elem = elem[l:]
} else {
@ -251,7 +253,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -281,7 +283,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -293,7 +295,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case 'c': // Prefix: "completed"
origElem := elem
if l := len("completed"); len(elem) >= l && elem[0:l] == "completed" {
elem = elem[l:]
} else {
@ -314,9 +316,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
case 'm': // Prefix: "model"
origElem := elem
if l := len("model"); len(elem) >= l && elem[0:l] == "model" {
elem = elem[l:]
} else {
@ -337,9 +338,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
case 's': // Prefix: "status/"
origElem := elem
if l := len("status/"); len(elem) >= l && elem[0:l] == "status/" {
elem = elem[l:]
} else {
@ -351,7 +351,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case 'r': // Prefix: "re"
origElem := elem
if l := len("re"); len(elem) >= l && elem[0:l] == "re" {
elem = elem[l:]
} else {
@ -363,7 +363,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case 'j': // Prefix: "ject"
origElem := elem
if l := len("ject"); len(elem) >= l && elem[0:l] == "ject" {
elem = elem[l:]
} else {
@ -384,9 +384,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
case 'q': // Prefix: "quest-changes"
origElem := elem
if l := len("quest-changes"); len(elem) >= l && elem[0:l] == "quest-changes" {
elem = elem[l:]
} else {
@ -407,9 +406,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
case 'v': // Prefix: "voke"
origElem := elem
if l := len("voke"); len(elem) >= l && elem[0:l] == "voke" {
elem = elem[l:]
} else {
@ -430,12 +428,10 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
}
elem = origElem
case 's': // Prefix: "submit"
origElem := elem
if l := len("submit"); len(elem) >= l && elem[0:l] == "submit" {
elem = elem[l:]
} else {
@ -456,9 +452,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
case 't': // Prefix: "trigger-"
origElem := elem
if l := len("trigger-"); len(elem) >= l && elem[0:l] == "trigger-" {
elem = elem[l:]
} else {
@ -470,7 +465,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case 'u': // Prefix: "upload"
origElem := elem
if l := len("upload"); len(elem) >= l && elem[0:l] == "upload" {
elem = elem[l:]
} else {
@ -491,9 +486,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
case 'v': // Prefix: "validate"
origElem := elem
if l := len("validate"); len(elem) >= l && elem[0:l] == "validate" {
elem = elem[l:]
} else {
@ -514,28 +508,20 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
}
s.notFound(w, r)
@ -617,7 +603,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -629,7 +615,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case 'r': // Prefix: "release-submissions"
origElem := elem
if l := len("release-submissions"); len(elem) >= l && elem[0:l] == "release-submissions" {
elem = elem[l:]
} else {
@ -652,9 +638,8 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
case 's': // Prefix: "s"
origElem := elem
if l := len("s"); len(elem) >= l && elem[0:l] == "s" {
elem = elem[l:]
} else {
@ -666,7 +651,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case 'c': // Prefix: "cript"
origElem := elem
if l := len("cript"); len(elem) >= l && elem[0:l] == "cript" {
elem = elem[l:]
} else {
@ -678,7 +663,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case '-': // Prefix: "-policy"
origElem := elem
if l := len("-policy"); len(elem) >= l && elem[0:l] == "-policy" {
elem = elem[l:]
} else {
@ -709,7 +694,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -717,7 +702,11 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
// Param: "ScriptPolicyID"
// Leaf parameter
// Leaf parameter, slashes are prohibited
idx := strings.IndexByte(elem, '/')
if idx >= 0 {
break
}
args[0] = elem
elem = ""
@ -753,12 +742,10 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
}
elem = origElem
case 's': // Prefix: "s"
origElem := elem
if l := len("s"); len(elem) >= l && elem[0:l] == "s" {
elem = elem[l:]
} else {
@ -789,7 +776,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -797,7 +784,11 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
// Param: "ScriptID"
// Leaf parameter
// Leaf parameter, slashes are prohibited
idx := strings.IndexByte(elem, '/')
if idx >= 0 {
break
}
args[0] = elem
elem = ""
@ -833,15 +824,12 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
}
elem = origElem
}
elem = origElem
case 'u': // Prefix: "ubmissions"
origElem := elem
if l := len("ubmissions"); len(elem) >= l && elem[0:l] == "ubmissions" {
elem = elem[l:]
} else {
@ -872,7 +860,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -904,7 +892,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -916,7 +904,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case 'c': // Prefix: "completed"
origElem := elem
if l := len("completed"); len(elem) >= l && elem[0:l] == "completed" {
elem = elem[l:]
} else {
@ -939,9 +927,8 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
case 'm': // Prefix: "model"
origElem := elem
if l := len("model"); len(elem) >= l && elem[0:l] == "model" {
elem = elem[l:]
} else {
@ -964,9 +951,8 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
case 's': // Prefix: "status/"
origElem := elem
if l := len("status/"); len(elem) >= l && elem[0:l] == "status/" {
elem = elem[l:]
} else {
@ -978,7 +964,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case 'r': // Prefix: "re"
origElem := elem
if l := len("re"); len(elem) >= l && elem[0:l] == "re" {
elem = elem[l:]
} else {
@ -990,7 +976,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case 'j': // Prefix: "ject"
origElem := elem
if l := len("ject"); len(elem) >= l && elem[0:l] == "ject" {
elem = elem[l:]
} else {
@ -1013,9 +999,8 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
case 'q': // Prefix: "quest-changes"
origElem := elem
if l := len("quest-changes"); len(elem) >= l && elem[0:l] == "quest-changes" {
elem = elem[l:]
} else {
@ -1038,9 +1023,8 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
case 'v': // Prefix: "voke"
origElem := elem
if l := len("voke"); len(elem) >= l && elem[0:l] == "voke" {
elem = elem[l:]
} else {
@ -1063,12 +1047,10 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
}
elem = origElem
case 's': // Prefix: "submit"
origElem := elem
if l := len("submit"); len(elem) >= l && elem[0:l] == "submit" {
elem = elem[l:]
} else {
@ -1091,9 +1073,8 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
case 't': // Prefix: "trigger-"
origElem := elem
if l := len("trigger-"); len(elem) >= l && elem[0:l] == "trigger-" {
elem = elem[l:]
} else {
@ -1105,7 +1086,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case 'u': // Prefix: "upload"
origElem := elem
if l := len("upload"); len(elem) >= l && elem[0:l] == "upload" {
elem = elem[l:]
} else {
@ -1128,9 +1109,8 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
case 'v': // Prefix: "validate"
origElem := elem
if l := len("validate"); len(elem) >= l && elem[0:l] == "validate" {
elem = elem[l:]
} else {
@ -1153,28 +1133,20 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
}
return r, false

@ -21,6 +21,11 @@ import (
"github.com/ogen-go/ogen/uri"
)
func trimTrailingSlashes(u *url.URL) {
u.Path = strings.TrimRight(u.Path, "/")
u.RawPath = strings.TrimRight(u.RawPath, "/")
}
// Invoker invokes operations described by OpenAPI v3 specification.
type Invoker interface {
// ActionSubmissionAccepted invokes actionSubmissionAccepted operation.
@ -93,11 +98,6 @@ var _ Handler = struct {
*Client
}{}
func trimTrailingSlashes(u *url.URL) {
u.Path = strings.TrimRight(u.Path, "/")
u.RawPath = strings.TrimRight(u.RawPath, "/")
}
// NewClient initializes new Client defined by OAS.
func NewClient(serverURL string, opts ...ClientOption) (*Client, error) {
u, err := url.Parse(serverURL)

@ -430,7 +430,7 @@ func decodeListScriptPolicyParams(args [0]string, argsEscaped bool, r *http.Requ
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {
@ -483,7 +483,7 @@ func decodeListScriptPolicyParams(args [0]string, argsEscaped bool, r *http.Requ
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {
@ -751,7 +751,7 @@ func decodeListScriptsParams(args [0]string, argsEscaped bool, r *http.Request)
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {
@ -804,7 +804,7 @@ func decodeListScriptsParams(args [0]string, argsEscaped bool, r *http.Request)
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {
@ -1156,7 +1156,7 @@ func decodeUpdateSubmissionModelParams(args [1]string, argsEscaped bool, r *http
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {
@ -1192,7 +1192,7 @@ func decodeUpdateSubmissionModelParams(args [1]string, argsEscaped bool, r *http
return err
}
} else {
return validate.ErrFieldRequired
return err
}
return nil
}(); err != nil {

@ -50,7 +50,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case '/': // Prefix: "/s"
origElem := elem
if l := len("/s"); len(elem) >= l && elem[0:l] == "/s" {
elem = elem[l:]
} else {
@ -62,7 +62,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case 'c': // Prefix: "cript"
origElem := elem
if l := len("cript"); len(elem) >= l && elem[0:l] == "cript" {
elem = elem[l:]
} else {
@ -74,7 +74,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case '-': // Prefix: "-policy"
origElem := elem
if l := len("-policy"); len(elem) >= l && elem[0:l] == "-policy" {
elem = elem[l:]
} else {
@ -95,9 +95,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
case 's': // Prefix: "s"
origElem := elem
if l := len("s"); len(elem) >= l && elem[0:l] == "s" {
elem = elem[l:]
} else {
@ -118,7 +117,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -126,7 +125,11 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
// Param: "ScriptID"
// Leaf parameter
// Leaf parameter, slashes are prohibited
idx := strings.IndexByte(elem, '/')
if idx >= 0 {
break
}
args[0] = elem
elem = ""
@ -144,15 +147,12 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
}
elem = origElem
}
elem = origElem
case 'u': // Prefix: "ubmissions/"
origElem := elem
if l := len("ubmissions/"); len(elem) >= l && elem[0:l] == "ubmissions/" {
elem = elem[l:]
} else {
@ -173,7 +173,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -185,7 +185,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case 'm': // Prefix: "model"
origElem := elem
if l := len("model"); len(elem) >= l && elem[0:l] == "model" {
elem = elem[l:]
} else {
@ -206,9 +206,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
case 's': // Prefix: "status/validator-"
origElem := elem
if l := len("status/validator-"); len(elem) >= l && elem[0:l] == "status/validator-" {
elem = elem[l:]
} else {
@ -220,7 +219,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
switch elem[0] {
case 'f': // Prefix: "failed"
origElem := elem
if l := len("failed"); len(elem) >= l && elem[0:l] == "failed" {
elem = elem[l:]
} else {
@ -241,9 +240,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
case 'u': // Prefix: "uploaded"
origElem := elem
if l := len("uploaded"); len(elem) >= l && elem[0:l] == "uploaded" {
elem = elem[l:]
} else {
@ -264,9 +262,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
case 'v': // Prefix: "validated"
origElem := elem
if l := len("validated"); len(elem) >= l && elem[0:l] == "validated" {
elem = elem[l:]
} else {
@ -287,19 +284,14 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
}
s.notFound(w, r)
@ -381,7 +373,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case '/': // Prefix: "/s"
origElem := elem
if l := len("/s"); len(elem) >= l && elem[0:l] == "/s" {
elem = elem[l:]
} else {
@ -393,7 +385,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case 'c': // Prefix: "cript"
origElem := elem
if l := len("cript"); len(elem) >= l && elem[0:l] == "cript" {
elem = elem[l:]
} else {
@ -405,7 +397,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case '-': // Prefix: "-policy"
origElem := elem
if l := len("-policy"); len(elem) >= l && elem[0:l] == "-policy" {
elem = elem[l:]
} else {
@ -436,9 +428,8 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
case 's': // Prefix: "s"
origElem := elem
if l := len("s"); len(elem) >= l && elem[0:l] == "s" {
elem = elem[l:]
} else {
@ -469,7 +460,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -477,7 +468,11 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
// Param: "ScriptID"
// Leaf parameter
// Leaf parameter, slashes are prohibited
idx := strings.IndexByte(elem, '/')
if idx >= 0 {
break
}
args[0] = elem
elem = ""
@ -497,15 +492,12 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
}
elem = origElem
}
elem = origElem
case 'u': // Prefix: "ubmissions/"
origElem := elem
if l := len("ubmissions/"); len(elem) >= l && elem[0:l] == "ubmissions/" {
elem = elem[l:]
} else {
@ -526,7 +518,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case '/': // Prefix: "/"
origElem := elem
if l := len("/"); len(elem) >= l && elem[0:l] == "/" {
elem = elem[l:]
} else {
@ -538,7 +530,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case 'm': // Prefix: "model"
origElem := elem
if l := len("model"); len(elem) >= l && elem[0:l] == "model" {
elem = elem[l:]
} else {
@ -561,9 +553,8 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
case 's': // Prefix: "status/validator-"
origElem := elem
if l := len("status/validator-"); len(elem) >= l && elem[0:l] == "status/validator-" {
elem = elem[l:]
} else {
@ -575,7 +566,7 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
switch elem[0] {
case 'f': // Prefix: "failed"
origElem := elem
if l := len("failed"); len(elem) >= l && elem[0:l] == "failed" {
elem = elem[l:]
} else {
@ -598,9 +589,8 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
case 'u': // Prefix: "uploaded"
origElem := elem
if l := len("uploaded"); len(elem) >= l && elem[0:l] == "uploaded" {
elem = elem[l:]
} else {
@ -623,9 +613,8 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
case 'v': // Prefix: "validated"
origElem := elem
if l := len("validated"); len(elem) >= l && elem[0:l] == "validated" {
elem = elem[l:]
} else {
@ -648,19 +637,14 @@ func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool) {
}
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
elem = origElem
}
}
return r, false