143 lines
3.4 KiB
Go
143 lines
3.4 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
|
||
|
)
|
||
|
|
||
|
// Handler handles operations described by OpenAPI v3 specification.
|
||
|
type Handler interface {
|
||
|
// CreateUsers implements createUsers operation.
|
||
|
//
|
||
|
// Creates a new Users and persists it to storage.
|
||
|
//
|
||
|
// POST /users
|
||
|
CreateUsers(ctx context.Context, req CreateUsersReq) (CreateUsersRes, error)
|
||
|
// DeleteUsers implements deleteUsers operation.
|
||
|
//
|
||
|
// Deletes the Users with the requested ID.
|
||
|
//
|
||
|
// DELETE /users/{id}
|
||
|
DeleteUsers(ctx context.Context, params DeleteUsersParams) (DeleteUsersRes, error)
|
||
|
// DrawDone implements drawDone operation.
|
||
|
//
|
||
|
// PUT /users/{id}/d
|
||
|
DrawDone(ctx context.Context, params DrawDoneParams) (DrawDoneNoContent, error)
|
||
|
// DrawStart implements drawStart operation.
|
||
|
//
|
||
|
// PATCH /users/{id}/start
|
||
|
DrawStart(ctx context.Context, params DrawStartParams) (DrawStartNoContent, error)
|
||
|
// ListUsers implements listUsers operation.
|
||
|
//
|
||
|
// List Users.
|
||
|
//
|
||
|
// GET /users
|
||
|
ListUsers(ctx context.Context, params ListUsersParams) (ListUsersRes, error)
|
||
|
// ReadUsers implements readUsers operation.
|
||
|
//
|
||
|
// Finds the Users with the requested ID and returns it.
|
||
|
//
|
||
|
// GET /users/{id}
|
||
|
ReadUsers(ctx context.Context, params ReadUsersParams) (ReadUsersRes, error)
|
||
|
// UpdateUsers implements updateUsers operation.
|
||
|
//
|
||
|
// Updates a Users and persists changes to storage.
|
||
|
//
|
||
|
// PATCH /users/{id}
|
||
|
UpdateUsers(ctx context.Context, req UpdateUsersReq, params UpdateUsersParams) (UpdateUsersRes, error)
|
||
|
}
|
||
|
|
||
|
// Server implements http server based on OpenAPI v3 specification and
|
||
|
// calls Handler to handle requests.
|
||
|
type Server struct {
|
||
|
h Handler
|
||
|
cfg config
|
||
|
|
||
|
requests metric.Int64Counter
|
||
|
errors metric.Int64Counter
|
||
|
duration metric.Int64Histogram
|
||
|
}
|
||
|
|
||
|
func NewServer(h Handler, opts ...Option) (*Server, error) {
|
||
|
s := &Server{
|
||
|
h: h,
|
||
|
cfg: newConfig(opts...),
|
||
|
}
|
||
|
var err error
|
||
|
if s.requests, err = s.cfg.Meter.NewInt64Counter(otelogen.ServerRequestCount); err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
if s.errors, err = s.cfg.Meter.NewInt64Counter(otelogen.ServerErrorsCount); err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
if s.duration, err = s.cfg.Meter.NewInt64Histogram(otelogen.ServerDuration); err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return s, nil
|
||
|
}
|