Skip to content

Commit 9795b59

Browse files
committed
Improved code and branch coverage
1 parent ee363b9 commit 9795b59

File tree

5 files changed

+1289
-5
lines changed

5 files changed

+1289
-5
lines changed

src/Deveel.Messaging.Connector.Facebook/Messaging/FacebookMessengerConnector.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -430,8 +430,10 @@ private List<IMessage> ParseFacebookWebhook(MessageSource source)
430430
if (string.IsNullOrEmpty(senderId) || string.IsNullOrEmpty(recipientId))
431431
return null;
432432

433-
// Extract message ID and timestamp
434-
var messageId = messageProperty.GetProperty("mid").GetString() ?? Guid.NewGuid().ToString();
433+
// Extract message ID and timestamp - handle missing mid property safely
434+
var messageId = messageProperty.TryGetProperty("mid", out var midProperty)
435+
? midProperty.GetString() ?? Guid.NewGuid().ToString()
436+
: Guid.NewGuid().ToString();
435437
var timestamp = messageProperty.TryGetProperty("timestamp", out var timestampProperty)
436438
? DateTimeOffset.FromUnixTimeMilliseconds(timestampProperty.GetInt64()).DateTime
437439
: DateTime.UtcNow;

src/Deveel.Messaging.Connector.Facebook/Messaging/FacebookService.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ private static bool IsValidPageAccessToken(string token)
151151
private static void ValidateMessageRequest(FacebookMessageRequest request)
152152
{
153153
// Facebook Messenger Platform validation requirements
154-
if (string.IsNullOrEmpty(request.Message.Text) && request.Message.Attachment == null)
154+
if (string.IsNullOrWhiteSpace(request.Message.Text) && request.Message.Attachment == null)
155155
throw new ArgumentException("Message must contain either text or attachment");
156156

157157
if (!string.IsNullOrEmpty(request.Message.Text) && request.Message.Text.Length > 2000)
@@ -280,7 +280,10 @@ private static string ParseFacebookError(RestResponse response)
280280
}
281281
catch
282282
{
283-
return $"HTTP {(int)response.StatusCode} {response.StatusCode}: {response.ErrorMessage}";
283+
// When JSON parsing fails, return the raw content if it's not empty
284+
return !string.IsNullOrEmpty(response.Content)
285+
? response.Content
286+
: $"HTTP {(int)response.StatusCode} {response.StatusCode}: {response.ErrorMessage}";
284287
}
285288
}
286289

src/Deveel.Messaging.Connector.Facebook/Messaging/FacebookMessengerConnectorLoggerExtensions.cs renamed to src/Deveel.Messaging.Connector.Facebook/Messaging/LoggerExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace Deveel.Messaging
1010
/// <summary>
1111
/// Provides high-performance logging extensions for Facebook Messenger Connector operations using source-generated logging methods.
1212
/// </summary>
13-
internal static partial class FacebookMessengerConnectorLoggerExtensions
13+
internal static partial class LoggerExtensions
1414
{
1515
#region Initialization Logging
1616

0 commit comments

Comments
 (0)