Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(api): OpenAPI spec update via Stainless API #559

Merged
merged 1 commit into from
May 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
configured_endpoints: 1286
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-03573240641a2c0ec81ecd650a4e8be921d8cf797acfa5bcb504300e254a9ce3.yml
configured_endpoints: 1283
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-19826fa2034ab86674d8dfba6d0db4e84b60161e42867c90ca7e177751d28962.yml
5 changes: 0 additions & 5 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -3992,16 +3992,11 @@ Types:
- <code><a href="./src/resources/d1/database.ts">QueryResult</a></code>
- <code><a href="./src/resources/d1/database.ts">DatabaseCreateResponse</a></code>
- <code><a href="./src/resources/d1/database.ts">DatabaseListResponse</a></code>
- <code><a href="./src/resources/d1/database.ts">DatabaseDeleteResponse</a></code>
- <code><a href="./src/resources/d1/database.ts">DatabaseQueryResponse</a></code>

Methods:

- <code title="post /accounts/{account_id}/d1/database">client.d1.database.<a href="./src/resources/d1/database.ts">create</a>({ ...params }) -> DatabaseCreateResponse</code>
- <code title="get /accounts/{account_id}/d1/database">client.d1.database.<a href="./src/resources/d1/database.ts">list</a>({ ...params }) -> DatabaseListResponsesV4PagePaginationArray</code>
- <code title="delete /accounts/{account_identifier}/d1/database/{database_identifier}">client.d1.database.<a href="./src/resources/d1/database.ts">delete</a>(accountIdentifier, databaseIdentifier) -> DatabaseDeleteResponse</code>
- <code title="get /accounts/{account_identifier}/d1/database/{database_identifier}">client.d1.database.<a href="./src/resources/d1/database.ts">get</a>(accountIdentifier, databaseIdentifier) -> D1</code>
- <code title="post /accounts/{account_identifier}/d1/database/{database_identifier}/query">client.d1.database.<a href="./src/resources/d1/database.ts">query</a>(accountIdentifier, databaseIdentifier, { ...params }) -> DatabaseQueryResponse</code>

# R2

Expand Down
22 changes: 7 additions & 15 deletions src/resources/cloudforce-one/requests/message.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import * as Core from '../../../core';
import { APIResource } from '../../../resource';
import * as MessageAPI from './message';
import * as Shared from '../../shared';

export class MessageResource extends APIResource {
/**
Expand Down Expand Up @@ -52,10 +51,12 @@ export class MessageResource extends APIResource {
messageIdentifer: number,
options?: Core.RequestOptions,
): Core.APIPromise<MessageDeleteResponse> {
return this._client.delete(
`/accounts/${accountIdentifier}/cloudforce-one/requests/${requestIdentifier}/message/${messageIdentifer}`,
options,
);
return (
this._client.delete(
`/accounts/${accountIdentifier}/cloudforce-one/requests/${requestIdentifier}/message/${messageIdentifer}`,
options,
) as Core.APIPromise<{ result: MessageDeleteResponse }>
)._thenUnwrap((obj) => obj.result);
}

/**
Expand Down Expand Up @@ -108,16 +109,7 @@ export interface Message {
created?: string;
}

export interface MessageDeleteResponse {
errors: Array<Shared.ResponseInfo>;

messages: Array<Shared.ResponseInfo>;

/**
* Whether the API call was successful
*/
success: true;
}
export type MessageDeleteResponse = unknown | Array<unknown> | string;

export type MessageGetResponse = Array<Message>;

Expand Down
22 changes: 7 additions & 15 deletions src/resources/cloudforce-one/requests/priority.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import * as Core from '../../../core';
import { APIResource } from '../../../resource';
import * as PriorityAPI from './priority';
import * as Shared from '../../shared';
import * as RequestsAPI from './requests';

export class PriorityResource extends APIResource {
Expand Down Expand Up @@ -48,10 +47,12 @@ export class PriorityResource extends APIResource {
priorityIdentifer: string,
options?: Core.RequestOptions,
): Core.APIPromise<PriorityDeleteResponse> {
return this._client.delete(
`/accounts/${accountIdentifier}/cloudforce-one/requests/priority/${priorityIdentifer}`,
options,
);
return (
this._client.delete(
`/accounts/${accountIdentifier}/cloudforce-one/requests/priority/${priorityIdentifer}`,
options,
) as Core.APIPromise<{ result: PriorityDeleteResponse }>
)._thenUnwrap((obj) => obj.result);
}

/**
Expand Down Expand Up @@ -146,16 +147,7 @@ export interface PriorityEdit {
tlp: 'clear' | 'amber' | 'amber-strict' | 'green' | 'red';
}

export interface PriorityDeleteResponse {
errors: Array<Shared.ResponseInfo>;

messages: Array<Shared.ResponseInfo>;

/**
* Whether the API call was successful
*/
success: true;
}
export type PriorityDeleteResponse = unknown | Array<unknown> | string;

export interface PriorityCreateParams {
/**
Expand Down
22 changes: 7 additions & 15 deletions src/resources/cloudforce-one/requests/requests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import * as Core from '../../../core';
import { APIResource } from '../../../resource';
import * as RequestsAPI from './requests';
import * as Shared from '../../shared';
import * as MessageAPI from './message';
import * as PriorityAPI from './priority';
import { V4PagePaginationArray, type V4PagePaginationArrayParams } from '../../../pagination';
Expand Down Expand Up @@ -72,10 +71,12 @@ export class Requests extends APIResource {
requestIdentifier: string,
options?: Core.RequestOptions,
): Core.APIPromise<RequestDeleteResponse> {
return this._client.delete(
`/accounts/${accountIdentifier}/cloudforce-one/requests/${requestIdentifier}`,
options,
);
return (
this._client.delete(
`/accounts/${accountIdentifier}/cloudforce-one/requests/${requestIdentifier}`,
options,
) as Core.APIPromise<{ result: RequestDeleteResponse }>
)._thenUnwrap((obj) => obj.result);
}

/**
Expand Down Expand Up @@ -279,16 +280,7 @@ export interface RequestConstants {

export type RequestTypes = Array<string>;

export interface RequestDeleteResponse {
errors: Array<Shared.ResponseInfo>;

messages: Array<Shared.ResponseInfo>;

/**
* Whether the API call was successful
*/
success: true;
}
export type RequestDeleteResponse = unknown | Array<unknown> | string;

export interface RequestCreateParams {
/**
Expand Down
3 changes: 0 additions & 3 deletions src/resources/d1/d1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,7 @@ export namespace D1Resource {
export import QueryResult = DatabaseAPI.QueryResult;
export import DatabaseCreateResponse = DatabaseAPI.DatabaseCreateResponse;
export import DatabaseListResponse = DatabaseAPI.DatabaseListResponse;
export import DatabaseDeleteResponse = DatabaseAPI.DatabaseDeleteResponse;
export import DatabaseQueryResponse = DatabaseAPI.DatabaseQueryResponse;
export import DatabaseListResponsesV4PagePaginationArray = DatabaseAPI.DatabaseListResponsesV4PagePaginationArray;
export import DatabaseCreateParams = DatabaseAPI.DatabaseCreateParams;
export import DatabaseListParams = DatabaseAPI.DatabaseListParams;
export import DatabaseQueryParams = DatabaseAPI.DatabaseQueryParams;
}
63 changes: 0 additions & 63 deletions src/resources/d1/database.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import * as Core from '../../core';
import { APIResource } from '../../resource';
import * as DatabaseAPI from './database';
import * as D1API from './d1';
import { V4PagePaginationArray, type V4PagePaginationArrayParams } from '../../pagination';

export class Database extends APIResource {
Expand Down Expand Up @@ -36,55 +35,6 @@ export class Database extends APIResource {
{ query, ...options },
);
}

/**
* Deletes the specified D1 database.
*/
delete(
accountIdentifier: string,
databaseIdentifier: string,
options?: Core.RequestOptions,
): Core.APIPromise<DatabaseDeleteResponse> {
return (
this._client.delete(
`/accounts/${accountIdentifier}/d1/database/${databaseIdentifier}`,
options,
) as Core.APIPromise<{ result: DatabaseDeleteResponse }>
)._thenUnwrap((obj) => obj.result);
}

/**
* Returns the specified D1 database.
*/
get(
accountIdentifier: string,
databaseIdentifier: string,
options?: Core.RequestOptions,
): Core.APIPromise<D1API.D1> {
return (
this._client.get(
`/accounts/${accountIdentifier}/d1/database/${databaseIdentifier}`,
options,
) as Core.APIPromise<{ result: D1API.D1 }>
)._thenUnwrap((obj) => obj.result);
}

/**
* Returns the query result.
*/
query(
accountIdentifier: string,
databaseIdentifier: string,
body: DatabaseQueryParams,
options?: Core.RequestOptions,
): Core.APIPromise<DatabaseQueryResponse> {
return (
this._client.post(`/accounts/${accountIdentifier}/d1/database/${databaseIdentifier}/query`, {
body,
...options,
}) as Core.APIPromise<{ result: DatabaseQueryResponse }>
)._thenUnwrap((obj) => obj.result);
}
}

export class DatabaseListResponsesV4PagePaginationArray extends V4PagePaginationArray<DatabaseListResponse> {}
Expand Down Expand Up @@ -141,10 +91,6 @@ export interface DatabaseListResponse {
version?: string;
}

export type DatabaseDeleteResponse = unknown | string | null;

export type DatabaseQueryResponse = Array<QueryResult>;

export interface DatabaseCreateParams {
/**
* Path param: Account identifier tag.
Expand All @@ -169,20 +115,11 @@ export interface DatabaseListParams extends V4PagePaginationArrayParams {
name?: string;
}

export interface DatabaseQueryParams {
sql: string;

params?: Array<string>;
}

export namespace Database {
export import QueryResult = DatabaseAPI.QueryResult;
export import DatabaseCreateResponse = DatabaseAPI.DatabaseCreateResponse;
export import DatabaseListResponse = DatabaseAPI.DatabaseListResponse;
export import DatabaseDeleteResponse = DatabaseAPI.DatabaseDeleteResponse;
export import DatabaseQueryResponse = DatabaseAPI.DatabaseQueryResponse;
export import DatabaseListResponsesV4PagePaginationArray = DatabaseAPI.DatabaseListResponsesV4PagePaginationArray;
export import DatabaseCreateParams = DatabaseAPI.DatabaseCreateParams;
export import DatabaseListParams = DatabaseAPI.DatabaseListParams;
export import DatabaseQueryParams = DatabaseAPI.DatabaseQueryParams;
}
3 changes: 0 additions & 3 deletions src/resources/d1/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,8 @@ export {
QueryResult,
DatabaseCreateResponse,
DatabaseListResponse,
DatabaseDeleteResponse,
DatabaseQueryResponse,
DatabaseCreateParams,
DatabaseListParams,
DatabaseQueryParams,
DatabaseListResponsesV4PagePaginationArray,
Database,
} from './database';
71 changes: 0 additions & 71 deletions tests/api-resources/d1/database.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,75 +50,4 @@ describe('resource database', () => {
per_page: 10,
});
});

test('delete', async () => {
const responsePromise = cloudflare.d1.database.delete(
'023e105f4ecef8ad9ca31a8372d0c353',
'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
);
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
expect(response).not.toBeInstanceOf(Response);
const dataAndResponse = await responsePromise.withResponse();
expect(dataAndResponse.data).toBe(response);
expect(dataAndResponse.response).toBe(rawResponse);
});

test('delete: request options instead of params are passed correctly', async () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
cloudflare.d1.database.delete(
'023e105f4ecef8ad9ca31a8372d0c353',
'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
{ path: '/_stainless_unknown_path' },
),
).rejects.toThrow(Cloudflare.NotFoundError);
});

test('get', async () => {
const responsePromise = cloudflare.d1.database.get(
'023e105f4ecef8ad9ca31a8372d0c353',
'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
);
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
expect(response).not.toBeInstanceOf(Response);
const dataAndResponse = await responsePromise.withResponse();
expect(dataAndResponse.data).toBe(response);
expect(dataAndResponse.response).toBe(rawResponse);
});

test('get: request options instead of params are passed correctly', async () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
cloudflare.d1.database.get('023e105f4ecef8ad9ca31a8372d0c353', 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', {
path: '/_stainless_unknown_path',
}),
).rejects.toThrow(Cloudflare.NotFoundError);
});

test('query: only required params', async () => {
const responsePromise = cloudflare.d1.database.query(
'023e105f4ecef8ad9ca31a8372d0c353',
'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
{ sql: 'SELECT * FROM myTable WHERE field = ? OR field = ?;' },
);
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
expect(response).not.toBeInstanceOf(Response);
const dataAndResponse = await responsePromise.withResponse();
expect(dataAndResponse.data).toBe(response);
expect(dataAndResponse.response).toBe(rawResponse);
});

test('query: required and optional params', async () => {
const response = await cloudflare.d1.database.query(
'023e105f4ecef8ad9ca31a8372d0c353',
'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
{ sql: 'SELECT * FROM myTable WHERE field = ? OR field = ?;', params: ['firstParam', 'secondParam'] },
);
});
});