| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678 |
- // Package client provides primitives to interact with the openapi HTTP API.
- //
- // Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.4.1 DO NOT EDIT.
- package client
- import (
- "bytes"
- "context"
- "encoding/json"
- "fmt"
- "io"
- "net/http"
- "net/url"
- "strings"
- )
- // SessionInfo defines model for Session.Info.
- type SessionInfo struct {
- Id string `json:"id"`
- ShareID *string `json:"shareID,omitempty"`
- Title string `json:"title"`
- Tokens struct {
- Input float32 `json:"input"`
- Output float32 `json:"output"`
- Reasoning float32 `json:"reasoning"`
- } `json:"tokens"`
- }
- // PostSessionChatJSONBody defines parameters for PostSessionChat.
- type PostSessionChatJSONBody struct {
- Parts *interface{} `json:"parts,omitempty"`
- SessionID string `json:"sessionID"`
- }
- // PostSessionMessagesJSONBody defines parameters for PostSessionMessages.
- type PostSessionMessagesJSONBody struct {
- SessionID string `json:"sessionID"`
- }
- // PostSessionShareJSONBody defines parameters for PostSessionShare.
- type PostSessionShareJSONBody struct {
- SessionID string `json:"sessionID"`
- }
- // PostSessionChatJSONRequestBody defines body for PostSessionChat for application/json ContentType.
- type PostSessionChatJSONRequestBody PostSessionChatJSONBody
- // PostSessionMessagesJSONRequestBody defines body for PostSessionMessages for application/json ContentType.
- type PostSessionMessagesJSONRequestBody PostSessionMessagesJSONBody
- // PostSessionShareJSONRequestBody defines body for PostSessionShare for application/json ContentType.
- type PostSessionShareJSONRequestBody PostSessionShareJSONBody
- // RequestEditorFn is the function signature for the RequestEditor callback function
- type RequestEditorFn func(ctx context.Context, req *http.Request) error
- // Doer performs HTTP requests.
- //
- // The standard http.Client implements this interface.
- type HttpRequestDoer interface {
- Do(req *http.Request) (*http.Response, error)
- }
- // Client which conforms to the OpenAPI3 specification for this service.
- type Client struct {
- // The endpoint of the server conforming to this interface, with scheme,
- // https://api.deepmap.com for example. This can contain a path relative
- // to the server, such as https://api.deepmap.com/dev-test, and all the
- // paths in the swagger spec will be appended to the server.
- Server string
- // Doer for performing requests, typically a *http.Client with any
- // customized settings, such as certificate chains.
- Client HttpRequestDoer
- // A list of callbacks for modifying requests which are generated before sending over
- // the network.
- RequestEditors []RequestEditorFn
- }
- // ClientOption allows setting custom parameters during construction
- type ClientOption func(*Client) error
- // Creates a new Client, with reasonable defaults
- func NewClient(server string, opts ...ClientOption) (*Client, error) {
- // create a client with sane default values
- client := Client{
- Server: server,
- }
- // mutate client and add all optional params
- for _, o := range opts {
- if err := o(&client); err != nil {
- return nil, err
- }
- }
- // ensure the server URL always has a trailing slash
- if !strings.HasSuffix(client.Server, "/") {
- client.Server += "/"
- }
- // create httpClient, if not already present
- if client.Client == nil {
- client.Client = &http.Client{}
- }
- return &client, nil
- }
- // WithHTTPClient allows overriding the default Doer, which is
- // automatically created using http.Client. This is useful for tests.
- func WithHTTPClient(doer HttpRequestDoer) ClientOption {
- return func(c *Client) error {
- c.Client = doer
- return nil
- }
- }
- // WithRequestEditorFn allows setting up a callback function, which will be
- // called right before sending the request. This can be used to mutate the request.
- func WithRequestEditorFn(fn RequestEditorFn) ClientOption {
- return func(c *Client) error {
- c.RequestEditors = append(c.RequestEditors, fn)
- return nil
- }
- }
- // The interface specification for the client above.
- type ClientInterface interface {
- // PostSessionChatWithBody request with any body
- PostSessionChatWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
- PostSessionChat(ctx context.Context, body PostSessionChatJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
- // PostSessionCreate request
- PostSessionCreate(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
- // PostSessionMessagesWithBody request with any body
- PostSessionMessagesWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
- PostSessionMessages(ctx context.Context, body PostSessionMessagesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
- // PostSessionShareWithBody request with any body
- PostSessionShareWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
- PostSessionShare(ctx context.Context, body PostSessionShareJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
- }
- func (c *Client) PostSessionChatWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
- req, err := NewPostSessionChatRequestWithBody(c.Server, contentType, body)
- if err != nil {
- return nil, err
- }
- req = req.WithContext(ctx)
- if err := c.applyEditors(ctx, req, reqEditors); err != nil {
- return nil, err
- }
- return c.Client.Do(req)
- }
- func (c *Client) PostSessionChat(ctx context.Context, body PostSessionChatJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
- req, err := NewPostSessionChatRequest(c.Server, body)
- if err != nil {
- return nil, err
- }
- req = req.WithContext(ctx)
- if err := c.applyEditors(ctx, req, reqEditors); err != nil {
- return nil, err
- }
- return c.Client.Do(req)
- }
- func (c *Client) PostSessionCreate(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) {
- req, err := NewPostSessionCreateRequest(c.Server)
- if err != nil {
- return nil, err
- }
- req = req.WithContext(ctx)
- if err := c.applyEditors(ctx, req, reqEditors); err != nil {
- return nil, err
- }
- return c.Client.Do(req)
- }
- func (c *Client) PostSessionMessagesWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
- req, err := NewPostSessionMessagesRequestWithBody(c.Server, contentType, body)
- if err != nil {
- return nil, err
- }
- req = req.WithContext(ctx)
- if err := c.applyEditors(ctx, req, reqEditors); err != nil {
- return nil, err
- }
- return c.Client.Do(req)
- }
- func (c *Client) PostSessionMessages(ctx context.Context, body PostSessionMessagesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
- req, err := NewPostSessionMessagesRequest(c.Server, body)
- if err != nil {
- return nil, err
- }
- req = req.WithContext(ctx)
- if err := c.applyEditors(ctx, req, reqEditors); err != nil {
- return nil, err
- }
- return c.Client.Do(req)
- }
- func (c *Client) PostSessionShareWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
- req, err := NewPostSessionShareRequestWithBody(c.Server, contentType, body)
- if err != nil {
- return nil, err
- }
- req = req.WithContext(ctx)
- if err := c.applyEditors(ctx, req, reqEditors); err != nil {
- return nil, err
- }
- return c.Client.Do(req)
- }
- func (c *Client) PostSessionShare(ctx context.Context, body PostSessionShareJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
- req, err := NewPostSessionShareRequest(c.Server, body)
- if err != nil {
- return nil, err
- }
- req = req.WithContext(ctx)
- if err := c.applyEditors(ctx, req, reqEditors); err != nil {
- return nil, err
- }
- return c.Client.Do(req)
- }
- // NewPostSessionChatRequest calls the generic PostSessionChat builder with application/json body
- func NewPostSessionChatRequest(server string, body PostSessionChatJSONRequestBody) (*http.Request, error) {
- var bodyReader io.Reader
- buf, err := json.Marshal(body)
- if err != nil {
- return nil, err
- }
- bodyReader = bytes.NewReader(buf)
- return NewPostSessionChatRequestWithBody(server, "application/json", bodyReader)
- }
- // NewPostSessionChatRequestWithBody generates requests for PostSessionChat with any type of body
- func NewPostSessionChatRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) {
- var err error
- serverURL, err := url.Parse(server)
- if err != nil {
- return nil, err
- }
- operationPath := fmt.Sprintf("/session_chat")
- if operationPath[0] == '/' {
- operationPath = "." + operationPath
- }
- queryURL, err := serverURL.Parse(operationPath)
- if err != nil {
- return nil, err
- }
- req, err := http.NewRequest("POST", queryURL.String(), body)
- if err != nil {
- return nil, err
- }
- req.Header.Add("Content-Type", contentType)
- return req, nil
- }
- // NewPostSessionCreateRequest generates requests for PostSessionCreate
- func NewPostSessionCreateRequest(server string) (*http.Request, error) {
- var err error
- serverURL, err := url.Parse(server)
- if err != nil {
- return nil, err
- }
- operationPath := fmt.Sprintf("/session_create")
- if operationPath[0] == '/' {
- operationPath = "." + operationPath
- }
- queryURL, err := serverURL.Parse(operationPath)
- if err != nil {
- return nil, err
- }
- req, err := http.NewRequest("POST", queryURL.String(), nil)
- if err != nil {
- return nil, err
- }
- return req, nil
- }
- // NewPostSessionMessagesRequest calls the generic PostSessionMessages builder with application/json body
- func NewPostSessionMessagesRequest(server string, body PostSessionMessagesJSONRequestBody) (*http.Request, error) {
- var bodyReader io.Reader
- buf, err := json.Marshal(body)
- if err != nil {
- return nil, err
- }
- bodyReader = bytes.NewReader(buf)
- return NewPostSessionMessagesRequestWithBody(server, "application/json", bodyReader)
- }
- // NewPostSessionMessagesRequestWithBody generates requests for PostSessionMessages with any type of body
- func NewPostSessionMessagesRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) {
- var err error
- serverURL, err := url.Parse(server)
- if err != nil {
- return nil, err
- }
- operationPath := fmt.Sprintf("/session_messages")
- if operationPath[0] == '/' {
- operationPath = "." + operationPath
- }
- queryURL, err := serverURL.Parse(operationPath)
- if err != nil {
- return nil, err
- }
- req, err := http.NewRequest("POST", queryURL.String(), body)
- if err != nil {
- return nil, err
- }
- req.Header.Add("Content-Type", contentType)
- return req, nil
- }
- // NewPostSessionShareRequest calls the generic PostSessionShare builder with application/json body
- func NewPostSessionShareRequest(server string, body PostSessionShareJSONRequestBody) (*http.Request, error) {
- var bodyReader io.Reader
- buf, err := json.Marshal(body)
- if err != nil {
- return nil, err
- }
- bodyReader = bytes.NewReader(buf)
- return NewPostSessionShareRequestWithBody(server, "application/json", bodyReader)
- }
- // NewPostSessionShareRequestWithBody generates requests for PostSessionShare with any type of body
- func NewPostSessionShareRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) {
- var err error
- serverURL, err := url.Parse(server)
- if err != nil {
- return nil, err
- }
- operationPath := fmt.Sprintf("/session_share")
- if operationPath[0] == '/' {
- operationPath = "." + operationPath
- }
- queryURL, err := serverURL.Parse(operationPath)
- if err != nil {
- return nil, err
- }
- req, err := http.NewRequest("POST", queryURL.String(), body)
- if err != nil {
- return nil, err
- }
- req.Header.Add("Content-Type", contentType)
- return req, nil
- }
- func (c *Client) applyEditors(ctx context.Context, req *http.Request, additionalEditors []RequestEditorFn) error {
- for _, r := range c.RequestEditors {
- if err := r(ctx, req); err != nil {
- return err
- }
- }
- for _, r := range additionalEditors {
- if err := r(ctx, req); err != nil {
- return err
- }
- }
- return nil
- }
- // ClientWithResponses builds on ClientInterface to offer response payloads
- type ClientWithResponses struct {
- ClientInterface
- }
- // NewClientWithResponses creates a new ClientWithResponses, which wraps
- // Client with return type handling
- func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error) {
- client, err := NewClient(server, opts...)
- if err != nil {
- return nil, err
- }
- return &ClientWithResponses{client}, nil
- }
- // WithBaseURL overrides the baseURL.
- func WithBaseURL(baseURL string) ClientOption {
- return func(c *Client) error {
- newBaseURL, err := url.Parse(baseURL)
- if err != nil {
- return err
- }
- c.Server = newBaseURL.String()
- return nil
- }
- }
- // ClientWithResponsesInterface is the interface specification for the client with responses above.
- type ClientWithResponsesInterface interface {
- // PostSessionChatWithBodyWithResponse request with any body
- PostSessionChatWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionChatResponse, error)
- PostSessionChatWithResponse(ctx context.Context, body PostSessionChatJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionChatResponse, error)
- // PostSessionCreateWithResponse request
- PostSessionCreateWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostSessionCreateResponse, error)
- // PostSessionMessagesWithBodyWithResponse request with any body
- PostSessionMessagesWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionMessagesResponse, error)
- PostSessionMessagesWithResponse(ctx context.Context, body PostSessionMessagesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionMessagesResponse, error)
- // PostSessionShareWithBodyWithResponse request with any body
- PostSessionShareWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionShareResponse, error)
- PostSessionShareWithResponse(ctx context.Context, body PostSessionShareJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionShareResponse, error)
- }
- type PostSessionChatResponse struct {
- Body []byte
- HTTPResponse *http.Response
- }
- // Status returns HTTPResponse.Status
- func (r PostSessionChatResponse) Status() string {
- if r.HTTPResponse != nil {
- return r.HTTPResponse.Status
- }
- return http.StatusText(0)
- }
- // StatusCode returns HTTPResponse.StatusCode
- func (r PostSessionChatResponse) StatusCode() int {
- if r.HTTPResponse != nil {
- return r.HTTPResponse.StatusCode
- }
- return 0
- }
- type PostSessionCreateResponse struct {
- Body []byte
- HTTPResponse *http.Response
- JSON200 *SessionInfo
- }
- // Status returns HTTPResponse.Status
- func (r PostSessionCreateResponse) Status() string {
- if r.HTTPResponse != nil {
- return r.HTTPResponse.Status
- }
- return http.StatusText(0)
- }
- // StatusCode returns HTTPResponse.StatusCode
- func (r PostSessionCreateResponse) StatusCode() int {
- if r.HTTPResponse != nil {
- return r.HTTPResponse.StatusCode
- }
- return 0
- }
- type PostSessionMessagesResponse struct {
- Body []byte
- HTTPResponse *http.Response
- JSON200 *interface{}
- }
- // Status returns HTTPResponse.Status
- func (r PostSessionMessagesResponse) Status() string {
- if r.HTTPResponse != nil {
- return r.HTTPResponse.Status
- }
- return http.StatusText(0)
- }
- // StatusCode returns HTTPResponse.StatusCode
- func (r PostSessionMessagesResponse) StatusCode() int {
- if r.HTTPResponse != nil {
- return r.HTTPResponse.StatusCode
- }
- return 0
- }
- type PostSessionShareResponse struct {
- Body []byte
- HTTPResponse *http.Response
- JSON200 *SessionInfo
- }
- // Status returns HTTPResponse.Status
- func (r PostSessionShareResponse) Status() string {
- if r.HTTPResponse != nil {
- return r.HTTPResponse.Status
- }
- return http.StatusText(0)
- }
- // StatusCode returns HTTPResponse.StatusCode
- func (r PostSessionShareResponse) StatusCode() int {
- if r.HTTPResponse != nil {
- return r.HTTPResponse.StatusCode
- }
- return 0
- }
- // PostSessionChatWithBodyWithResponse request with arbitrary body returning *PostSessionChatResponse
- func (c *ClientWithResponses) PostSessionChatWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionChatResponse, error) {
- rsp, err := c.PostSessionChatWithBody(ctx, contentType, body, reqEditors...)
- if err != nil {
- return nil, err
- }
- return ParsePostSessionChatResponse(rsp)
- }
- func (c *ClientWithResponses) PostSessionChatWithResponse(ctx context.Context, body PostSessionChatJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionChatResponse, error) {
- rsp, err := c.PostSessionChat(ctx, body, reqEditors...)
- if err != nil {
- return nil, err
- }
- return ParsePostSessionChatResponse(rsp)
- }
- // PostSessionCreateWithResponse request returning *PostSessionCreateResponse
- func (c *ClientWithResponses) PostSessionCreateWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostSessionCreateResponse, error) {
- rsp, err := c.PostSessionCreate(ctx, reqEditors...)
- if err != nil {
- return nil, err
- }
- return ParsePostSessionCreateResponse(rsp)
- }
- // PostSessionMessagesWithBodyWithResponse request with arbitrary body returning *PostSessionMessagesResponse
- func (c *ClientWithResponses) PostSessionMessagesWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionMessagesResponse, error) {
- rsp, err := c.PostSessionMessagesWithBody(ctx, contentType, body, reqEditors...)
- if err != nil {
- return nil, err
- }
- return ParsePostSessionMessagesResponse(rsp)
- }
- func (c *ClientWithResponses) PostSessionMessagesWithResponse(ctx context.Context, body PostSessionMessagesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionMessagesResponse, error) {
- rsp, err := c.PostSessionMessages(ctx, body, reqEditors...)
- if err != nil {
- return nil, err
- }
- return ParsePostSessionMessagesResponse(rsp)
- }
- // PostSessionShareWithBodyWithResponse request with arbitrary body returning *PostSessionShareResponse
- func (c *ClientWithResponses) PostSessionShareWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionShareResponse, error) {
- rsp, err := c.PostSessionShareWithBody(ctx, contentType, body, reqEditors...)
- if err != nil {
- return nil, err
- }
- return ParsePostSessionShareResponse(rsp)
- }
- func (c *ClientWithResponses) PostSessionShareWithResponse(ctx context.Context, body PostSessionShareJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionShareResponse, error) {
- rsp, err := c.PostSessionShare(ctx, body, reqEditors...)
- if err != nil {
- return nil, err
- }
- return ParsePostSessionShareResponse(rsp)
- }
- // ParsePostSessionChatResponse parses an HTTP response from a PostSessionChatWithResponse call
- func ParsePostSessionChatResponse(rsp *http.Response) (*PostSessionChatResponse, error) {
- bodyBytes, err := io.ReadAll(rsp.Body)
- defer func() { _ = rsp.Body.Close() }()
- if err != nil {
- return nil, err
- }
- response := &PostSessionChatResponse{
- Body: bodyBytes,
- HTTPResponse: rsp,
- }
- return response, nil
- }
- // ParsePostSessionCreateResponse parses an HTTP response from a PostSessionCreateWithResponse call
- func ParsePostSessionCreateResponse(rsp *http.Response) (*PostSessionCreateResponse, error) {
- bodyBytes, err := io.ReadAll(rsp.Body)
- defer func() { _ = rsp.Body.Close() }()
- if err != nil {
- return nil, err
- }
- response := &PostSessionCreateResponse{
- Body: bodyBytes,
- HTTPResponse: rsp,
- }
- switch {
- case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
- var dest SessionInfo
- if err := json.Unmarshal(bodyBytes, &dest); err != nil {
- return nil, err
- }
- response.JSON200 = &dest
- }
- return response, nil
- }
- // ParsePostSessionMessagesResponse parses an HTTP response from a PostSessionMessagesWithResponse call
- func ParsePostSessionMessagesResponse(rsp *http.Response) (*PostSessionMessagesResponse, error) {
- bodyBytes, err := io.ReadAll(rsp.Body)
- defer func() { _ = rsp.Body.Close() }()
- if err != nil {
- return nil, err
- }
- response := &PostSessionMessagesResponse{
- Body: bodyBytes,
- HTTPResponse: rsp,
- }
- switch {
- case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
- var dest interface{}
- if err := json.Unmarshal(bodyBytes, &dest); err != nil {
- return nil, err
- }
- response.JSON200 = &dest
- }
- return response, nil
- }
- // ParsePostSessionShareResponse parses an HTTP response from a PostSessionShareWithResponse call
- func ParsePostSessionShareResponse(rsp *http.Response) (*PostSessionShareResponse, error) {
- bodyBytes, err := io.ReadAll(rsp.Body)
- defer func() { _ = rsp.Body.Close() }()
- if err != nil {
- return nil, err
- }
- response := &PostSessionShareResponse{
- Body: bodyBytes,
- HTTPResponse: rsp,
- }
- switch {
- case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
- var dest SessionInfo
- if err := json.Unmarshal(bodyBytes, &dest); err != nil {
- return nil, err
- }
- response.JSON200 = &dest
- }
- return response, nil
- }
|