public void MessageBirdRequestSignerIsMatchEmptyDataAndWrongExpectedSignature() { var requestSigner = new MessageBirdRequestSigner(GetBytes("secret")); const string expectedSignature = "SignatureIsNotValid"; var request = new MessageBirdRequest("1544544948", "", GetBytes("")); Assert.False(requestSigner.IsMatch(expectedSignature, request)); }
public void MessageBirdRequestSignerIsNotMatchWithEmptyExpectedSignature() { var requestSigner = new MessageBirdRequestSigner(GetBytes("secret")); const string expectedSignature = ""; var request = new MessageBirdRequest("1544544948", "", GetBytes("{\"a key\":\"some value\"}")); Assert.False(requestSigner.IsMatch(expectedSignature, request)); }
public async Task RunAsync(MessagePayload messagePayload) { try { Utils.PerformLookUps(messagePayload.QueueData); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, Vendor.VendorDetails["url"]); request.Headers.Add("Authorization", "AccessKey " + Vendor.VendorDetails["accesskey"]); MessageBirdRequest messageBirdRequest = new MessageBirdRequest { body = messagePayload.QueueData.TextBody, originator = Vendor.VendorDetails["originator"], recipients = messagePayload.QueueData.MobileNumber, shortcode = Vendor.VendorDetails["shortcode"] ?? "", datacoding = Vendor.VendorDetails["datacoding"] ?? "plain" }; string jsonbody = JsonConvert.SerializeObject(messageBirdRequest); request.Content = new StringContent(jsonbody, Encoding.UTF8, "application/json"); HttpResponseMessage response = await Resources.GetInstance().HttpClient.SendAsync(request); if (!response.IsSuccessStatusCode) { HttpRequestException httpRequestException = new HttpRequestException($"Message Bird API didn't return a 2xx => " + $"response headers: {JsonConvert.SerializeObject(response)} => response content: {await response.Content.ReadAsStringAsync()}"); messagePayload.LogEvents.Add(Utils.CreateLogEvent(messagePayload.QueueData, IRDLM.DispatchUnsuccessful(Vendor.VendorName, httpRequestException))); messagePayload.InvitationLogEvents.Add(Utils.CreateInvitationLogEvent(EventAction.DispatchUnsuccessful, EventChannel.SMS, messagePayload.QueueData, IRDLM.DispatchUnsuccessful(Vendor.VendorName, httpRequestException))); } else { messagePayload.LogEvents.Add(Utils.CreateLogEvent(messagePayload.QueueData, IRDLM.DispatchSuccessful(Vendor.VendorName))); messagePayload.InvitationLogEvents.Add(Utils.CreateInvitationLogEvent(EventAction.DispatchSuccessful, EventChannel.SMS, messagePayload.QueueData, IRDLM.DispatchSuccessful(Vendor.VendorName))); } } catch (Exception ex) { messagePayload.LogEvents.Add(Utils.CreateLogEvent(messagePayload.QueueData, IRDLM.DispatchUnsuccessful(Vendor.VendorName, ex))); messagePayload.InvitationLogEvents.Add(Utils.CreateInvitationLogEvent(EventAction.DispatchUnsuccessful, EventChannel.SMS, messagePayload.QueueData, IRDLM.DispatchUnsuccessful(Vendor.VendorName, ex))); } }