Skip to content

Commit

Permalink
feat(api): OpenAPI spec update via Stainless API (#559)
Browse files Browse the repository at this point in the history
  • Loading branch information
stainless-app[bot] authored and stainless-bot committed May 16, 2024
1 parent 8f101ff commit 07945c1
Show file tree
Hide file tree
Showing 9 changed files with 23 additions and 192 deletions.
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'] },
);
});
});

0 comments on commit 07945c1

Please sign in to comment.