first
This commit is contained in:
564
ent/ogent/oas_client_gen.go
Normal file
564
ent/ogent/oas_client_gen.go
Normal file
@@ -0,0 +1,564 @@
|
||||
// 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
|
||||
)
|
||||
|
||||
// Client implements OAS client.
|
||||
type Client struct {
|
||||
serverURL *url.URL
|
||||
cfg config
|
||||
requests metric.Int64Counter
|
||||
errors metric.Int64Counter
|
||||
duration metric.Int64Histogram
|
||||
}
|
||||
|
||||
// NewClient initializes new Client defined by OAS.
|
||||
func NewClient(serverURL string, opts ...Option) (*Client, error) {
|
||||
u, err := url.Parse(serverURL)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
c := &Client{
|
||||
cfg: newConfig(opts...),
|
||||
serverURL: u,
|
||||
}
|
||||
if c.requests, err = c.cfg.Meter.NewInt64Counter(otelogen.ClientRequestCount); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if c.errors, err = c.cfg.Meter.NewInt64Counter(otelogen.ClientErrorsCount); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if c.duration, err = c.cfg.Meter.NewInt64Histogram(otelogen.ClientDuration); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return c, nil
|
||||
}
|
||||
|
||||
// CreateUsers invokes createUsers operation.
|
||||
//
|
||||
// Creates a new Users and persists it to storage.
|
||||
//
|
||||
// POST /users
|
||||
func (c *Client) CreateUsers(ctx context.Context, request CreateUsersReq) (res CreateUsersRes, err error) {
|
||||
if err := func() error {
|
||||
if err := request.Validate(); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}(); err != nil {
|
||||
return res, errors.Wrap(err, "validate")
|
||||
}
|
||||
startTime := time.Now()
|
||||
otelAttrs := []attribute.KeyValue{
|
||||
otelogen.OperationID("createUsers"),
|
||||
}
|
||||
ctx, span := c.cfg.Tracer.Start(ctx, "CreateUsers",
|
||||
trace.WithAttributes(otelAttrs...),
|
||||
trace.WithSpanKind(trace.SpanKindClient),
|
||||
)
|
||||
defer func() {
|
||||
if err != nil {
|
||||
span.RecordError(err)
|
||||
c.errors.Add(ctx, 1, otelAttrs...)
|
||||
} else {
|
||||
elapsedDuration := time.Since(startTime)
|
||||
c.duration.Record(ctx, elapsedDuration.Microseconds(), otelAttrs...)
|
||||
}
|
||||
span.End()
|
||||
}()
|
||||
c.requests.Add(ctx, 1, otelAttrs...)
|
||||
var (
|
||||
contentType string
|
||||
reqBody io.Reader
|
||||
)
|
||||
contentType = "application/json"
|
||||
buf, err := encodeCreateUsersRequestJSON(request, span)
|
||||
if err != nil {
|
||||
return res, err
|
||||
}
|
||||
defer jx.PutEncoder(buf)
|
||||
reqBody = bytes.NewReader(buf.Bytes())
|
||||
|
||||
u := uri.Clone(c.serverURL)
|
||||
u.Path += "/users"
|
||||
|
||||
r := ht.NewRequest(ctx, "POST", u, reqBody)
|
||||
defer ht.PutRequest(r)
|
||||
|
||||
r.Header.Set("Content-Type", contentType)
|
||||
|
||||
resp, err := c.cfg.Client.Do(r)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "do request")
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
result, err := decodeCreateUsersResponse(resp, span)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "decode response")
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// DeleteUsers invokes deleteUsers operation.
|
||||
//
|
||||
// Deletes the Users with the requested ID.
|
||||
//
|
||||
// DELETE /users/{id}
|
||||
func (c *Client) DeleteUsers(ctx context.Context, params DeleteUsersParams) (res DeleteUsersRes, err error) {
|
||||
startTime := time.Now()
|
||||
otelAttrs := []attribute.KeyValue{
|
||||
otelogen.OperationID("deleteUsers"),
|
||||
}
|
||||
ctx, span := c.cfg.Tracer.Start(ctx, "DeleteUsers",
|
||||
trace.WithAttributes(otelAttrs...),
|
||||
trace.WithSpanKind(trace.SpanKindClient),
|
||||
)
|
||||
defer func() {
|
||||
if err != nil {
|
||||
span.RecordError(err)
|
||||
c.errors.Add(ctx, 1, otelAttrs...)
|
||||
} else {
|
||||
elapsedDuration := time.Since(startTime)
|
||||
c.duration.Record(ctx, elapsedDuration.Microseconds(), otelAttrs...)
|
||||
}
|
||||
span.End()
|
||||
}()
|
||||
c.requests.Add(ctx, 1, otelAttrs...)
|
||||
u := uri.Clone(c.serverURL)
|
||||
u.Path += "/users/"
|
||||
{
|
||||
// Encode "id" parameter.
|
||||
e := uri.NewPathEncoder(uri.PathEncoderConfig{
|
||||
Param: "id",
|
||||
Style: uri.PathStyleSimple,
|
||||
Explode: false,
|
||||
})
|
||||
if err := func() error {
|
||||
return e.EncodeValue(conv.IntToString(params.ID))
|
||||
}(); err != nil {
|
||||
return res, errors.Wrap(err, "encode path")
|
||||
}
|
||||
u.Path += e.Result()
|
||||
}
|
||||
|
||||
r := ht.NewRequest(ctx, "DELETE", u, nil)
|
||||
defer ht.PutRequest(r)
|
||||
|
||||
resp, err := c.cfg.Client.Do(r)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "do request")
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
result, err := decodeDeleteUsersResponse(resp, span)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "decode response")
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// DrawDone invokes drawDone operation.
|
||||
//
|
||||
// PUT /users/{id}/d
|
||||
func (c *Client) DrawDone(ctx context.Context, params DrawDoneParams) (res DrawDoneNoContent, err error) {
|
||||
startTime := time.Now()
|
||||
otelAttrs := []attribute.KeyValue{
|
||||
otelogen.OperationID("drawDone"),
|
||||
}
|
||||
ctx, span := c.cfg.Tracer.Start(ctx, "DrawDone",
|
||||
trace.WithAttributes(otelAttrs...),
|
||||
trace.WithSpanKind(trace.SpanKindClient),
|
||||
)
|
||||
defer func() {
|
||||
if err != nil {
|
||||
span.RecordError(err)
|
||||
c.errors.Add(ctx, 1, otelAttrs...)
|
||||
} else {
|
||||
elapsedDuration := time.Since(startTime)
|
||||
c.duration.Record(ctx, elapsedDuration.Microseconds(), otelAttrs...)
|
||||
}
|
||||
span.End()
|
||||
}()
|
||||
c.requests.Add(ctx, 1, otelAttrs...)
|
||||
u := uri.Clone(c.serverURL)
|
||||
u.Path += "/users/"
|
||||
{
|
||||
// Encode "id" parameter.
|
||||
e := uri.NewPathEncoder(uri.PathEncoderConfig{
|
||||
Param: "id",
|
||||
Style: uri.PathStyleSimple,
|
||||
Explode: false,
|
||||
})
|
||||
if err := func() error {
|
||||
return e.EncodeValue(conv.IntToString(params.ID))
|
||||
}(); err != nil {
|
||||
return res, errors.Wrap(err, "encode path")
|
||||
}
|
||||
u.Path += e.Result()
|
||||
}
|
||||
u.Path += "/d"
|
||||
|
||||
r := ht.NewRequest(ctx, "PUT", u, nil)
|
||||
defer ht.PutRequest(r)
|
||||
|
||||
resp, err := c.cfg.Client.Do(r)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "do request")
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
result, err := decodeDrawDoneResponse(resp, span)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "decode response")
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// DrawStart invokes drawStart operation.
|
||||
//
|
||||
// PATCH /users/{id}/start
|
||||
func (c *Client) DrawStart(ctx context.Context, params DrawStartParams) (res DrawStartNoContent, err error) {
|
||||
startTime := time.Now()
|
||||
otelAttrs := []attribute.KeyValue{
|
||||
otelogen.OperationID("drawStart"),
|
||||
}
|
||||
ctx, span := c.cfg.Tracer.Start(ctx, "DrawStart",
|
||||
trace.WithAttributes(otelAttrs...),
|
||||
trace.WithSpanKind(trace.SpanKindClient),
|
||||
)
|
||||
defer func() {
|
||||
if err != nil {
|
||||
span.RecordError(err)
|
||||
c.errors.Add(ctx, 1, otelAttrs...)
|
||||
} else {
|
||||
elapsedDuration := time.Since(startTime)
|
||||
c.duration.Record(ctx, elapsedDuration.Microseconds(), otelAttrs...)
|
||||
}
|
||||
span.End()
|
||||
}()
|
||||
c.requests.Add(ctx, 1, otelAttrs...)
|
||||
u := uri.Clone(c.serverURL)
|
||||
u.Path += "/users/"
|
||||
{
|
||||
// Encode "id" parameter.
|
||||
e := uri.NewPathEncoder(uri.PathEncoderConfig{
|
||||
Param: "id",
|
||||
Style: uri.PathStyleSimple,
|
||||
Explode: false,
|
||||
})
|
||||
if err := func() error {
|
||||
return e.EncodeValue(conv.IntToString(params.ID))
|
||||
}(); err != nil {
|
||||
return res, errors.Wrap(err, "encode path")
|
||||
}
|
||||
u.Path += e.Result()
|
||||
}
|
||||
u.Path += "/start"
|
||||
|
||||
r := ht.NewRequest(ctx, "PATCH", u, nil)
|
||||
defer ht.PutRequest(r)
|
||||
|
||||
resp, err := c.cfg.Client.Do(r)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "do request")
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
result, err := decodeDrawStartResponse(resp, span)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "decode response")
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// ListUsers invokes listUsers operation.
|
||||
//
|
||||
// List Users.
|
||||
//
|
||||
// GET /users
|
||||
func (c *Client) ListUsers(ctx context.Context, params ListUsersParams) (res ListUsersRes, err error) {
|
||||
startTime := time.Now()
|
||||
otelAttrs := []attribute.KeyValue{
|
||||
otelogen.OperationID("listUsers"),
|
||||
}
|
||||
ctx, span := c.cfg.Tracer.Start(ctx, "ListUsers",
|
||||
trace.WithAttributes(otelAttrs...),
|
||||
trace.WithSpanKind(trace.SpanKindClient),
|
||||
)
|
||||
defer func() {
|
||||
if err != nil {
|
||||
span.RecordError(err)
|
||||
c.errors.Add(ctx, 1, otelAttrs...)
|
||||
} else {
|
||||
elapsedDuration := time.Since(startTime)
|
||||
c.duration.Record(ctx, elapsedDuration.Microseconds(), otelAttrs...)
|
||||
}
|
||||
span.End()
|
||||
}()
|
||||
c.requests.Add(ctx, 1, otelAttrs...)
|
||||
u := uri.Clone(c.serverURL)
|
||||
u.Path += "/users"
|
||||
|
||||
q := u.Query()
|
||||
{
|
||||
// Encode "page" parameter.
|
||||
e := uri.NewQueryEncoder(uri.QueryEncoderConfig{
|
||||
Style: uri.QueryStyleForm,
|
||||
Explode: true,
|
||||
})
|
||||
if err := func() error {
|
||||
if val, ok := params.Page.Get(); ok {
|
||||
return e.EncodeValue(conv.IntToString(val))
|
||||
}
|
||||
return nil
|
||||
}(); err != nil {
|
||||
return res, errors.Wrap(err, "encode query")
|
||||
}
|
||||
q["page"] = e.Result()
|
||||
}
|
||||
{
|
||||
// Encode "itemsPerPage" parameter.
|
||||
e := uri.NewQueryEncoder(uri.QueryEncoderConfig{
|
||||
Style: uri.QueryStyleForm,
|
||||
Explode: true,
|
||||
})
|
||||
if err := func() error {
|
||||
if val, ok := params.ItemsPerPage.Get(); ok {
|
||||
return e.EncodeValue(conv.IntToString(val))
|
||||
}
|
||||
return nil
|
||||
}(); err != nil {
|
||||
return res, errors.Wrap(err, "encode query")
|
||||
}
|
||||
q["itemsPerPage"] = e.Result()
|
||||
}
|
||||
u.RawQuery = q.Encode()
|
||||
|
||||
r := ht.NewRequest(ctx, "GET", u, nil)
|
||||
defer ht.PutRequest(r)
|
||||
|
||||
resp, err := c.cfg.Client.Do(r)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "do request")
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
result, err := decodeListUsersResponse(resp, span)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "decode response")
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// ReadUsers invokes readUsers operation.
|
||||
//
|
||||
// Finds the Users with the requested ID and returns it.
|
||||
//
|
||||
// GET /users/{id}
|
||||
func (c *Client) ReadUsers(ctx context.Context, params ReadUsersParams) (res ReadUsersRes, err error) {
|
||||
startTime := time.Now()
|
||||
otelAttrs := []attribute.KeyValue{
|
||||
otelogen.OperationID("readUsers"),
|
||||
}
|
||||
ctx, span := c.cfg.Tracer.Start(ctx, "ReadUsers",
|
||||
trace.WithAttributes(otelAttrs...),
|
||||
trace.WithSpanKind(trace.SpanKindClient),
|
||||
)
|
||||
defer func() {
|
||||
if err != nil {
|
||||
span.RecordError(err)
|
||||
c.errors.Add(ctx, 1, otelAttrs...)
|
||||
} else {
|
||||
elapsedDuration := time.Since(startTime)
|
||||
c.duration.Record(ctx, elapsedDuration.Microseconds(), otelAttrs...)
|
||||
}
|
||||
span.End()
|
||||
}()
|
||||
c.requests.Add(ctx, 1, otelAttrs...)
|
||||
u := uri.Clone(c.serverURL)
|
||||
u.Path += "/users/"
|
||||
{
|
||||
// Encode "id" parameter.
|
||||
e := uri.NewPathEncoder(uri.PathEncoderConfig{
|
||||
Param: "id",
|
||||
Style: uri.PathStyleSimple,
|
||||
Explode: false,
|
||||
})
|
||||
if err := func() error {
|
||||
return e.EncodeValue(conv.IntToString(params.ID))
|
||||
}(); err != nil {
|
||||
return res, errors.Wrap(err, "encode path")
|
||||
}
|
||||
u.Path += e.Result()
|
||||
}
|
||||
|
||||
r := ht.NewRequest(ctx, "GET", u, nil)
|
||||
defer ht.PutRequest(r)
|
||||
|
||||
resp, err := c.cfg.Client.Do(r)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "do request")
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
result, err := decodeReadUsersResponse(resp, span)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "decode response")
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// UpdateUsers invokes updateUsers operation.
|
||||
//
|
||||
// Updates a Users and persists changes to storage.
|
||||
//
|
||||
// PATCH /users/{id}
|
||||
func (c *Client) UpdateUsers(ctx context.Context, request UpdateUsersReq, params UpdateUsersParams) (res UpdateUsersRes, err error) {
|
||||
if err := func() error {
|
||||
if err := request.Validate(); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}(); err != nil {
|
||||
return res, errors.Wrap(err, "validate")
|
||||
}
|
||||
startTime := time.Now()
|
||||
otelAttrs := []attribute.KeyValue{
|
||||
otelogen.OperationID("updateUsers"),
|
||||
}
|
||||
ctx, span := c.cfg.Tracer.Start(ctx, "UpdateUsers",
|
||||
trace.WithAttributes(otelAttrs...),
|
||||
trace.WithSpanKind(trace.SpanKindClient),
|
||||
)
|
||||
defer func() {
|
||||
if err != nil {
|
||||
span.RecordError(err)
|
||||
c.errors.Add(ctx, 1, otelAttrs...)
|
||||
} else {
|
||||
elapsedDuration := time.Since(startTime)
|
||||
c.duration.Record(ctx, elapsedDuration.Microseconds(), otelAttrs...)
|
||||
}
|
||||
span.End()
|
||||
}()
|
||||
c.requests.Add(ctx, 1, otelAttrs...)
|
||||
var (
|
||||
contentType string
|
||||
reqBody io.Reader
|
||||
)
|
||||
contentType = "application/json"
|
||||
buf, err := encodeUpdateUsersRequestJSON(request, span)
|
||||
if err != nil {
|
||||
return res, err
|
||||
}
|
||||
defer jx.PutEncoder(buf)
|
||||
reqBody = bytes.NewReader(buf.Bytes())
|
||||
|
||||
u := uri.Clone(c.serverURL)
|
||||
u.Path += "/users/"
|
||||
{
|
||||
// Encode "id" parameter.
|
||||
e := uri.NewPathEncoder(uri.PathEncoderConfig{
|
||||
Param: "id",
|
||||
Style: uri.PathStyleSimple,
|
||||
Explode: false,
|
||||
})
|
||||
if err := func() error {
|
||||
return e.EncodeValue(conv.IntToString(params.ID))
|
||||
}(); err != nil {
|
||||
return res, errors.Wrap(err, "encode path")
|
||||
}
|
||||
u.Path += e.Result()
|
||||
}
|
||||
|
||||
r := ht.NewRequest(ctx, "PATCH", u, reqBody)
|
||||
defer ht.PutRequest(r)
|
||||
|
||||
r.Header.Set("Content-Type", contentType)
|
||||
|
||||
resp, err := c.cfg.Client.Do(r)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "do request")
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
result, err := decodeUpdateUsersResponse(resp, span)
|
||||
if err != nil {
|
||||
return res, errors.Wrap(err, "decode response")
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
Reference in New Issue
Block a user