assets.ts•2.15 kB
/**
* Generated by orval v7.2.0 🍺
* Do not edit manually.
* storyden
* Storyden social API for building community driven platforms.
The Storyden API does not adhere to semantic versioning but instead applies a rolling strategy with deprecations and minimal breaking changes. This has been done mainly for a simpler development process and it may be changed to a more fixed versioning strategy in the future. Ultimately, the primary way Storyden tracks versions is dates, there are no set release tags currently.
* OpenAPI spec version: v1.25.8-canary
*/
import type {
AssetGetOKResponse,
AssetUploadBody,
AssetUploadOKResponse,
AssetUploadParams,
} from "../openapi-schema";
import { fetcher } from "../server";
/**
* Upload and process a media file.
*/
export type assetUploadResponse = {
data: AssetUploadOKResponse;
status: number;
};
export const getAssetUploadUrl = (params?: AssetUploadParams) => {
const normalizedParams = new URLSearchParams();
Object.entries(params || {}).forEach(([key, value]) => {
if (value !== undefined) {
normalizedParams.append(key, value === null ? "null" : value.toString());
}
});
return normalizedParams.size
? `/assets?${normalizedParams.toString()}`
: `/assets`;
};
export const assetUpload = async (
assetUploadBody: AssetUploadBody,
params?: AssetUploadParams,
options?: RequestInit,
): Promise<assetUploadResponse> => {
return fetcher<Promise<assetUploadResponse>>(getAssetUploadUrl(params), {
...options,
method: "POST",
headers: {
"Content-Type": "application/octet-stream",
...options?.headers,
},
body: JSON.stringify(assetUploadBody),
});
};
/**
* Download an asset by its ID.
*/
export type assetGetResponse = {
data: AssetGetOKResponse;
status: number;
};
export const getAssetGetUrl = (assetFilename: string) => {
return `/assets/${assetFilename}`;
};
export const assetGet = async (
assetFilename: string,
options?: RequestInit,
): Promise<assetGetResponse> => {
return fetcher<Promise<assetGetResponse>>(getAssetGetUrl(assetFilename), {
...options,
method: "GET",
});
};