New openapi generator - experimental

This commit is contained in:
Andreas
2023-12-20 23:19:24 +07:00
parent 43a3e17c0b
commit a559d4d224
22 changed files with 287 additions and 191 deletions

7
www/app/lib/shareMode.ts Normal file
View File

@@ -0,0 +1,7 @@
export type ShareMode = "public" | "semi-private" | "private" | null;
export function toShareMode(value: string | undefined | null): ShareMode {
return value === "public" || value === "semi-private" || value === "private"
? value
: null;
}

View File

@@ -1,15 +1,15 @@
import { DefaultService, OpenAPI } from "../api";
import { useFiefAccessTokenInfo } from "@fief/fief/nextjs/react";
import { useContext, useEffect, useState } from "react";
import { DomainContext, featureEnabled } from "../[domain]/domainContext";
import { CookieContext } from "../(auth)/fiefWrapper";
import { OpenApi, DefaultService } from "../api";
export default function getApi(): DefaultService | undefined {
export default function useApi(): DefaultService | null {
const accessTokenInfo = useFiefAccessTokenInfo();
const api_url = useContext(DomainContext).api_url;
const requireLogin = featureEnabled("requireLogin");
const [api, setApi] = useState<DefaultService>();
const [ready, setReady] = useState<boolean>(false);
const [api, setApi] = useState<OpenApi | null>(null);
const { hasAuthCookie } = useContext(CookieContext);
if (!api_url) throw new Error("no API URL");
@@ -19,18 +19,16 @@ export default function getApi(): DefaultService | undefined {
return;
}
// const apiConfiguration = new Configuration({
// basePath: api_url,
// accessToken: accessTokenInfo
// ? "Bearer " + accessTokenInfo.access_token
// : undefined,
// });
OpenAPI.BASE = api_url;
if (accessTokenInfo) {
OpenAPI.TOKEN = "Bearer " + accessTokenInfo.access_token;
}
setApi(DefaultService);
if (!accessTokenInfo)
return;
const openApi = new OpenApi({
BASE: api_url,
TOKEN: accessTokenInfo?.access_token
});
setApi(openApi);
}, [!accessTokenInfo, hasAuthCookie]);
return api;
return api?.default ?? null;
}