mirror of
https://github.com/unraid/api.git
synced 2026-01-06 00:30:22 -06:00
52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import { useLazyQuery, useMutation } from "@vue/apollo-composable";
|
|
import type { SetupRemoteAccessInput } from "~/composables/gql/graphql";
|
|
import {
|
|
GET_ALLOWED_ORIGINS,
|
|
GET_REMOTE_ACCESS,
|
|
SETUP_REMOTE_ACCESS,
|
|
SET_ADDITIONAL_ALLOWED_ORIGINS,
|
|
} from "~/store/unraidApiSettings.fragment";
|
|
|
|
export const useUnraidApiSettingsStore = defineStore(
|
|
"unraidApiSettings",
|
|
() => {
|
|
const { load: loadOrigins, result: origins } =
|
|
useLazyQuery(GET_ALLOWED_ORIGINS);
|
|
|
|
const { mutate: mutateOrigins } = useMutation(
|
|
SET_ADDITIONAL_ALLOWED_ORIGINS
|
|
);
|
|
const { load: loadRemoteAccess, result: remoteAccessResult } =
|
|
useLazyQuery(GET_REMOTE_ACCESS);
|
|
|
|
const { mutate: setupRemoteAccessMutation } =
|
|
useMutation(SETUP_REMOTE_ACCESS);
|
|
const getAllowedOrigins = async () => {
|
|
await loadOrigins();
|
|
return origins?.value?.extraAllowedOrigins ?? [];
|
|
};
|
|
|
|
const setAllowedOrigins = async (origins: string[]) => {
|
|
const result = await mutateOrigins({ input: { origins } });
|
|
return result?.data?.setAdditionalAllowedOrigins;
|
|
};
|
|
|
|
const getRemoteAccess = async () => {
|
|
await loadRemoteAccess();
|
|
return remoteAccessResult?.value?.remoteAccess;
|
|
};
|
|
|
|
const setupRemoteAccess = async (input: SetupRemoteAccessInput) => {
|
|
const response = await setupRemoteAccessMutation({ input });
|
|
return response?.data?.setupRemoteAccess;
|
|
};
|
|
|
|
return {
|
|
getAllowedOrigins,
|
|
setAllowedOrigins,
|
|
getRemoteAccess,
|
|
setupRemoteAccess,
|
|
};
|
|
}
|
|
);
|