Skip to content

Commit 6737d33

Browse files
feat: feat(tomarkdown): add new markdown supported endpoint
1 parent 925b354 commit 6737d33

File tree

4 files changed

+83
-2
lines changed

4 files changed

+83
-2
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 1899
1+
configured_endpoints: 1900
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-aa2c3728465401b156b0ae35cb80cfef39ae398866f7b44b52dba8dd04d7df0c.yml
33
openapi_spec_hash: afffe386ef9475dfec98d1c26d8225d4
4-
config_hash: f8ad41a1e87119e46c6452f8f1ea0440
4+
config_hash: 002f3cbea44c410d7ee7e31fa9b0058a

ai/tomarkdown.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,33 @@ func NewToMarkdownService(opts ...option.RequestOption) (r *ToMarkdownService) {
3939
return
4040
}
4141

42+
// Get all converted formats supported
43+
func (r *ToMarkdownService) Supported(ctx context.Context, query ToMarkdownSupportedParams, opts ...option.RequestOption) (res *pagination.SinglePage[ToMarkdownSupportedResponse], err error) {
44+
var raw *http.Response
45+
opts = slices.Concat(r.Options, opts)
46+
opts = append([]option.RequestOption{option.WithResponseInto(&raw)}, opts...)
47+
if query.AccountID.Value == "" {
48+
err = errors.New("missing required account_id parameter")
49+
return
50+
}
51+
path := fmt.Sprintf("accounts/%s/ai/tomarkdown/supported", query.AccountID)
52+
cfg, err := requestconfig.NewRequestConfig(ctx, http.MethodGet, path, nil, &res, opts...)
53+
if err != nil {
54+
return nil, err
55+
}
56+
err = cfg.Execute()
57+
if err != nil {
58+
return nil, err
59+
}
60+
res.SetPageConfig(cfg, raw)
61+
return res, nil
62+
}
63+
64+
// Get all converted formats supported
65+
func (r *ToMarkdownService) SupportedAutoPaging(ctx context.Context, query ToMarkdownSupportedParams, opts ...option.RequestOption) *pagination.SinglePageAutoPager[ToMarkdownSupportedResponse] {
66+
return pagination.NewSinglePageAutoPager(r.Supported(ctx, query, opts...))
67+
}
68+
4269
// Convert Files into Markdown
4370
func (r *ToMarkdownService) Transform(ctx context.Context, file io.Reader, body ToMarkdownTransformParams, opts ...option.RequestOption) (res *pagination.SinglePage[ToMarkdownTransformResponse], err error) {
4471
var raw *http.Response
@@ -66,6 +93,29 @@ func (r *ToMarkdownService) TransformAutoPaging(ctx context.Context, file io.Rea
6693
return pagination.NewSinglePageAutoPager(r.Transform(ctx, file, body, opts...))
6794
}
6895

96+
type ToMarkdownSupportedResponse struct {
97+
Extension string `json:"extension,required"`
98+
MimeType string `json:"mimeType,required"`
99+
JSON toMarkdownSupportedResponseJSON `json:"-"`
100+
}
101+
102+
// toMarkdownSupportedResponseJSON contains the JSON metadata for the struct
103+
// [ToMarkdownSupportedResponse]
104+
type toMarkdownSupportedResponseJSON struct {
105+
Extension apijson.Field
106+
MimeType apijson.Field
107+
raw string
108+
ExtraFields map[string]apijson.Field
109+
}
110+
111+
func (r *ToMarkdownSupportedResponse) UnmarshalJSON(data []byte) (err error) {
112+
return apijson.UnmarshalRoot(data, r)
113+
}
114+
115+
func (r toMarkdownSupportedResponseJSON) RawJSON() string {
116+
return r.raw
117+
}
118+
69119
type ToMarkdownTransformResponse struct {
70120
Data string `json:"data,required"`
71121
Format string `json:"format,required"`
@@ -95,6 +145,10 @@ func (r toMarkdownTransformResponseJSON) RawJSON() string {
95145
return r.raw
96146
}
97147

148+
type ToMarkdownSupportedParams struct {
149+
AccountID param.Field[string] `path:"account_id,required"`
150+
}
151+
98152
type ToMarkdownTransformParams struct {
99153
AccountID param.Field[string] `path:"account_id,required"`
100154
}

ai/tomarkdown_test.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,31 @@ import (
1616
"github.com/cloudflare/cloudflare-go/v6/option"
1717
)
1818

19+
func TestToMarkdownSupported(t *testing.T) {
20+
baseURL := "http://localhost:4010"
21+
if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
22+
baseURL = envURL
23+
}
24+
if !testutil.CheckTestServer(t, baseURL) {
25+
return
26+
}
27+
client := cloudflare.NewClient(
28+
option.WithBaseURL(baseURL),
29+
option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"),
30+
option.WithAPIEmail("user@example.com"),
31+
)
32+
_, err := client.AI.ToMarkdown.Supported(context.TODO(), ai.ToMarkdownSupportedParams{
33+
AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
34+
})
35+
if err != nil {
36+
var apierr *cloudflare.Error
37+
if errors.As(err, &apierr) {
38+
t.Log(string(apierr.DumpRequest(true)))
39+
}
40+
t.Fatalf("err should be nil: %s", err.Error())
41+
}
42+
}
43+
1944
func TestToMarkdownTransform(t *testing.T) {
2045
baseURL := "http://localhost:4010"
2146
if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {

api.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9264,10 +9264,12 @@ Methods:
92649264

92659265
Response Types:
92669266

9267+
- <a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai">ai</a>.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai#ToMarkdownSupportedResponse">ToMarkdownSupportedResponse</a>
92679268
- <a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai">ai</a>.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai#ToMarkdownTransformResponse">ToMarkdownTransformResponse</a>
92689269

92699270
Methods:
92709271

9272+
- <code title="get /accounts/{account_id}/ai/tomarkdown/supported">client.AI.ToMarkdown.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai#ToMarkdownService.Supported">Supported</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, query <a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai">ai</a>.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai#ToMarkdownSupportedParams">ToMarkdownSupportedParams</a>) (<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/packages/pagination">pagination</a>.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/packages/pagination#SinglePage">SinglePage</a>[<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai">ai</a>.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai#ToMarkdownSupportedResponse">ToMarkdownSupportedResponse</a>], <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
92719273
- <code title="post /accounts/{account_id}/ai/tomarkdown">client.AI.ToMarkdown.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai#ToMarkdownService.Transform">Transform</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, file <a href="https://pkg.go.dev/builtin#io.Reader">io.Reader</a>, body <a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai">ai</a>.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai#ToMarkdownTransformParams">ToMarkdownTransformParams</a>) (<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/packages/pagination">pagination</a>.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/packages/pagination#SinglePage">SinglePage</a>[<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai">ai</a>.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v6/ai#ToMarkdownTransformResponse">ToMarkdownTransformResponse</a>], <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
92729274

92739275
# SecurityCenter

0 commit comments

Comments
 (0)