//native
type Shutterstock = {
token: string;
};
/**
* Search for sound effects
* This endpoint searches for sound effects. If you specify more than one search parameter, the API uses an AND condition.
*/
export async function main(
auth: Shutterstock,
added_date: string | undefined,
added_date_start: string | undefined,
added_date_end: string | undefined,
duration: string | undefined,
duration_from: string | undefined,
duration_to: string | undefined,
page: string | undefined,
per_page: string | undefined,
query: string | undefined,
safe: string | undefined,
sort: "popular" | "newest" | "relevance" | "random" | "oldest" | undefined,
view: "minimal" | "full" | undefined,
language:
| "ar"
| "bg"
| "bn"
| "cs"
| "da"
| "de"
| "el"
| "en"
| "es"
| "fi"
| "fr"
| "gu"
| "he"
| "hi"
| "hr"
| "hu"
| "id"
| "it"
| "ja"
| "kn"
| "ko"
| "ml"
| "mr"
| "nb"
| "nl"
| "or"
| "pl"
| "pt"
| "ro"
| "ru"
| "sk"
| "sl"
| "sv"
| "ta"
| "te"
| "th"
| "tr"
| "uk"
| "ur"
| "vi"
| "zh"
| "zh-Hant"
| undefined,
) {
const url = new URL(`https://api.shutterstock.com/v2/sfx/search`);
for (const [k, v] of [
["added_date", added_date],
["added_date_start", added_date_start],
["added_date_end", added_date_end],
["duration", duration],
["duration_from", duration_from],
["duration_to", duration_to],
["page", page],
["per_page", per_page],
["query", query],
["safe", safe],
["sort", sort],
["view", view],
["language", language],
]) {
if (v !== undefined && v !== "" && k !== undefined) {
url.searchParams.append(k, v);
}
}
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: "Bearer " + auth.token,
},
body: undefined,
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 235 days ago