import { apiClient } from '@/lib/api/client'; import { OAuthConfigSchema, CreateOAuthConfigRequest, UpdateOAuthConfigRequest, ListOAuthConfigsResponse, } from '@insforge/shared-schemas'; export class OAuthConfigService { // List all OAuth configurations async getAllConfigs(): Promise { return apiClient.request('/auth/oauth/configs'); } // Get specific OAuth configuration by provider async getConfigByProvider( provider: string ): Promise { return apiClient.request(`/auth/oauth/${provider}/config`); } // Create new OAuth configuration async createConfig(config: CreateOAuthConfigRequest): Promise { return apiClient.request('/auth/oauth/configs', { method: 'POST', body: JSON.stringify(config), }); } // Update OAuth configuration async updateConfig( provider: string, config: UpdateOAuthConfigRequest ): Promise { return apiClient.request(`/auth/oauth/${provider}/config`, { method: 'PUT', body: JSON.stringify(config), }); } // Delete OAuth configuration async deleteConfig(provider: string): Promise<{ success: boolean; message: string }> { return apiClient.request(`/auth/oauth/${provider}/config`, { method: 'DELETE', }); } } export const oAuthConfigService = new OAuthConfigService();