diff --git a/src/routes/docs/references/[version]/[platform]/[service]/+page.server.ts b/src/routes/docs/references/[version]/[platform]/[service]/+page.server.ts index a38c7d662b..3b675b1c78 100644 --- a/src/routes/docs/references/[version]/[platform]/[service]/+page.server.ts +++ b/src/routes/docs/references/[version]/[platform]/[service]/+page.server.ts @@ -18,11 +18,11 @@ export const entries: EntryGenerator = () => { export const load: PageServerLoad = async ({ params }) => { const { platform, service } = params; - const version = params.version === 'cloud' ? '1.8.x' : params.version; - - if (!versions.includes(version)) error(404, 'Invalid version'); + if (params.version !== 'cloud' && !versions.includes(params.version)) error(404, 'Invalid version'); if (!platforms.includes(platform as Platform)) error(404, 'Invalid platform'); if (!services.includes(service as ServiceValue)) error(404, 'Invalid service'); + // Convert cloud to latest after validation + const version = params.version === 'cloud' ? 'latest' : params.version; return getService(version, platform, service); }; diff --git a/src/routes/docs/references/[version]/[platform]/[service]/specs.ts b/src/routes/docs/references/[version]/[platform]/[service]/specs.ts index 54a0cd16f3..3ade6a53ca 100644 --- a/src/routes/docs/references/[version]/[platform]/[service]/specs.ts +++ b/src/routes/docs/references/[version]/[platform]/[service]/specs.ts @@ -416,6 +416,21 @@ export async function getDescription(service: string) { return descriptions[target]() as unknown as string; } +function getContentTypeDescription(content: Record): string { + const contentType = Object.keys(content)[0]; + + if (contentType === '*/*') { + const mediaTypeObject = content[contentType]; + const schema = mediaTypeObject?.schema as OpenAPIV3.SchemaObject; + + if (schema?.type === 'string' && schema?.format === 'binary') { + return 'application/gzip'; + } + } + + return contentType; +} + export async function getService( version: string, platform: string, @@ -487,18 +502,18 @@ export async function getService( return { code: Number(code), - contentType: response?.content ? Object.keys(response.content)[0] : undefined, + contentType: response?.content ? getContentTypeDescription(response.content) : undefined, models }; } ); + const exampleVersion = version === 'latest' ? '1.7.x' : version; const path = isAndroid - ? `/node_modules/@appwrite.io/repo/docs/examples/${version}/${ + ? `/node_modules/@appwrite.io/repo/docs/examples/${exampleVersion}/${ isAndroidServer ? 'server-kotlin' : 'client-android' - }/${isAndroidJava ? 'java' : 'kotlin'}/${operation['x-appwrite']?.demo}` - : `/node_modules/@appwrite.io/repo/docs/examples/${version}/${platform}/examples/${operation['x-appwrite']?.demo}`; - + }/${isAndroidJava ? 'java' : 'kotlin'}/${operation['x-appwrite'].demo}` + : `/node_modules/@appwrite.io/repo/docs/examples/${exampleVersion}/${platform}/examples/${operation['x-appwrite'].demo}`; if (!(path in examples)) { continue; } diff --git a/src/routes/docs/references/[version]/models/[model]/+page.server.ts b/src/routes/docs/references/[version]/models/[model]/+page.server.ts index f5924a4d94..058e68de19 100644 --- a/src/routes/docs/references/[version]/models/[model]/+page.server.ts +++ b/src/routes/docs/references/[version]/models/[model]/+page.server.ts @@ -21,7 +21,7 @@ type Model = { }; export const load: PageServerLoad = async ({ params }) => { - const version = params.version === 'cloud' ? '1.8.x' : params.version; + const version = params.version === 'cloud' ? 'latest' : params.version; const api = await getApi(version, 'console-web'); const schema = getSchema(params.model, api); const props = Object.entries(schema.properties ?? {});