foldersSearchFoldersPost.ts•4.77 kB
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import { SDKCore } from "../core.js";
import { encodeJSON, encodeSimple } from "../lib/encodings.js";
import * as M from "../lib/matchers.js";
import { compactMap } from "../lib/primitives.js";
import { safeParse } from "../lib/schemas.js";
import { RequestOptions } from "../lib/sdks.js";
import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
import { pathToFunc } from "../lib/url.js";
import { APIError } from "../models/errors/apierror.js";
import {
ConnectionError,
InvalidRequestError,
RequestAbortedError,
RequestTimeoutError,
UnexpectedClientError,
} from "../models/errors/httpclienterrors.js";
import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
import {
SearchFoldersPostRequest,
SearchFoldersPostRequest$zodSchema,
SearchFoldersPostResponse,
SearchFoldersPostResponse$zodSchema,
} from "../models/searchfolderspostop.js";
import { APICall, APIPromise } from "../types/async.js";
import { Result } from "../types/fp.js";
/**
* Searches for folders in your product environment
*
* @remarks
* Lists the folders that match the specified search expression. Limited to 2000 results. If no parameters are passed, returns the 50 most recently created folders in descending order of creation time.
*/
export function foldersSearchFoldersPost(
client$: SDKCore,
request: SearchFoldersPostRequest,
options?: RequestOptions,
): APIPromise<
Result<
SearchFoldersPostResponse,
| APIError
| SDKValidationError
| UnexpectedClientError
| InvalidRequestError
| RequestAbortedError
| RequestTimeoutError
| ConnectionError
>
> {
return new APIPromise($do(
client$,
request,
options,
));
}
async function $do(
client$: SDKCore,
request: SearchFoldersPostRequest,
options?: RequestOptions,
): Promise<
[
Result<
SearchFoldersPostResponse,
| APIError
| SDKValidationError
| UnexpectedClientError
| InvalidRequestError
| RequestAbortedError
| RequestTimeoutError
| ConnectionError
>,
APICall,
]
> {
const parsed$ = safeParse(
request,
(value$) => SearchFoldersPostRequest$zodSchema.parse(value$),
"Input validation failed",
);
if (!parsed$.ok) {
return [parsed$, { status: "invalid" }];
}
const payload$ = parsed$.value;
const body$ = encodeJSON("body", payload$, { explode: true });
const pathParams$ = {
cloud_name: encodeSimple("cloud_name", client$._options.cloud_name, {
explode: false,
charEncoding: "percent",
}),
};
const path$ = pathToFunc("/v1_1/{cloud_name}/folders/search")(
pathParams$,
);
const headers$ = new Headers(compactMap({
"Content-Type": "application/json",
Accept: "application/json",
}));
const securityInput = await extractSecurity(client$._options.security);
const requestSecurity = resolveGlobalSecurity(securityInput);
const context = {
baseURL: options?.serverURL ?? client$._baseURL ?? "",
operationID: "searchFoldersPost",
oAuth2Scopes: [],
resolvedSecurity: requestSecurity,
securitySource: client$._options.security,
retryConfig: options?.retries
|| client$._options.retryConfig
|| { strategy: "none" },
retryCodes: options?.retryCodes || [
"429",
"500",
"502",
"503",
"504",
],
};
const requestRes = client$._createRequest(context, {
security: requestSecurity,
method: "POST",
baseURL: options?.serverURL,
path: path$,
headers: headers$,
body: body$,
timeoutMs: options?.timeoutMs || client$._options.timeoutMs
|| -1,
}, options);
if (!requestRes.ok) {
return [requestRes, { status: "invalid" }];
}
const req$ = requestRes.value;
const doResult = await client$._do(req$, {
context,
errorCodes: [],
retryConfig: context.retryConfig,
retryCodes: context.retryCodes,
});
if (!doResult.ok) {
return [doResult, { status: "request-error", request: req$ }];
}
const response = doResult.value;
const responseFields$ = {
HttpMeta: { Response: response, Request: req$ },
};
const [result$] = await M.match<
SearchFoldersPostResponse,
| APIError
| SDKValidationError
| UnexpectedClientError
| InvalidRequestError
| RequestAbortedError
| RequestTimeoutError
| ConnectionError
>(
M.json(200, SearchFoldersPostResponse$zodSchema, {
key: "folders_search_response",
}),
M.json([400, 401], SearchFoldersPostResponse$zodSchema, {
key: "api_error",
}),
)(response, req$, { extraFields: responseFields$ });
return [result$, { status: "complete", request: req$, response }];
}