using eprintServer.Entities; using eprintServer.DTOs; // Make sure to import the DTO namespace namespace eprintServer.Data { public static class OAuthSettingsExtensions { public static OAuthSettingsResponseDto2 ToResponseDto(this OAuthSettings settings) { return new OAuthSettingsResponseDto2 { Id = settings.Id, ThawaniPublicKey = settings.ThawaniPublicKey, TwilioPhoneNumber = settings.TwilioPhoneNumber, UpdatedAt = settings.UpdatedAt, // Pass the actual IDs to the frontend GoogleClientId = settings.GoogleClientId, FacebookAppId = settings.FacebookAppId, LinkedInClientId = settings.LinkedInClientId, // Showing the Client ID // Service configuration status IsGoogleConfigured = !string.IsNullOrEmpty(settings.GoogleClientId), IsFacebookConfigured = !string.IsNullOrEmpty(settings.FacebookAppId), IsInstagramConfigured = !string.IsNullOrEmpty(settings.InstagramAppId), IsLinkedInConfigured = !string.IsNullOrEmpty(settings.LinkedInClientId), IsThawaniConfigured = !string.IsNullOrEmpty(settings.ThawaniApiKey), IsTwilioConfigured = !string.IsNullOrEmpty(settings.TwilioAccountSid), // Masked values (show only first/last few characters) /* GoogleClientIdMasked = MaskString(settings.GoogleClientId, 4), FacebookAppIdMasked = MaskString(settings.FacebookAppId, 4) */ }; } private static string? MaskString(string? input, int visibleChars) { if (string.IsNullOrEmpty(input) || input.Length <= visibleChars * 2) return input; return input.Substring(0, visibleChars) + "..." + input.Substring(input.Length - visibleChars, visibleChars); } } }