import api from './client';
import type { SSOConfig, BrandingSettings } from '../types';
export const enterpriseApi = {
// SSO/SAML
getSSOConfig: async (): Promise<{ config: SSOConfig | null }> => {
const { data } = await api.get<{ config: SSOConfig | null }>('/api/enterprise/sso-config');
return data;
},
saveSSOConfig: async (config: Partial<SSOConfig>): Promise<{ config: SSOConfig }> => {
const { data } = await api.post<{ config: SSOConfig }>('/api/enterprise/sso-config', config);
return data;
},
getSPMetadata: async (): Promise<string> => {
const { data } = await api.get<string>('/api/enterprise/sso-config/metadata');
return data;
},
// White-Label Branding
getBranding: async (): Promise<{ settings: BrandingSettings }> => {
const { data } = await api.get<{ settings: BrandingSettings }>('/api/enterprise/branding');
return data;
},
updateBranding: async (settings: Partial<BrandingSettings>): Promise<{ settings: BrandingSettings }> => {
const { data } = await api.put<{ settings: BrandingSettings }>('/api/enterprise/branding', settings);
return data;
},
resetBranding: async (): Promise<{ settings: BrandingSettings }> => {
const { data } = await api.post<{ settings: BrandingSettings }>('/api/enterprise/branding/reset');
return data;
},
uploadLogo: async (file: File): Promise<{ logo_url: string }> => {
const formData = new FormData();
formData.append('file', file);
const { data } = await api.post<{ logo_url: string }>('/api/enterprise/branding/upload-logo', formData, {
headers: { 'Content-Type': 'multipart/form-data' },
});
return data;
},
};