Files
2026-07-13 12:08:39 +08:00

44 lines
1.0 KiB
TypeScript

import { useMutation } from '@tanstack/react-query';
import axios, { parseAxiosError } from '@/portainer/services/axios/axios';
import { mutationOptions, withError } from '@/react-tools/react-query';
export function useUpdateSSLConfigMutation() {
return useMutation(
updateSSLConfig,
mutationOptions(withError('Unable to update SSL configuration'))
);
}
interface SSLConfig {
// SSL Certificates
certFile?: File;
keyFile?: File;
httpEnabled?: boolean;
// SSL Client Certificates
clientCertFile?: File;
}
async function updateSSLConfig({
certFile,
keyFile,
clientCertFile,
...payload
}: SSLConfig) {
try {
const cert = certFile ? await certFile.text() : undefined;
const key = keyFile ? await keyFile.text() : undefined;
const clientCert = clientCertFile ? await clientCertFile.text() : undefined;
await axios.put('/ssl', {
...payload,
cert,
key,
clientCert,
});
} catch (error) {
throw parseAxiosError(error, 'Unable to update SSL configuration');
}
}