public async Task <InfobipResponseMessage> SendMessageAsync(InfobipOmniFailoverMessage infobipMessage, CancellationToken cancellationToken = default)
        {
            /* Please don't remove or change query parameters! */
            /* These parameters are used by Infobip customer care tools to identify MS Bot API requests so we could provide better and faster support to our clients. */
            var queryParams = new Dictionary <string, string>
            {
                { "piIntegrator", "89" },
                { "piPlatform", "r5rp" }
            };

            var request = new HttpRequestMessage
            {
                RequestUri = new Uri(QueryHelpers.AddQueryString($"{_infobipOptions.InfobipApiBaseUrl}{UrlAdvancedPart}", queryParams), UriKind.RelativeOrAbsolute),
                Method     = HttpMethod.Post
            };

            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var payload = infobipMessage.ToInfobipOmniFailoverOmniMessageJson();

            if (!string.IsNullOrEmpty(payload))
            {
                request.Content = new StringContent(payload, Encoding.UTF8, "application/json");
            }

            var res = await _infobipHttpClient.SendAsync(request, cancellationToken).ConfigureAwait(false);

            res.EnsureSuccessStatusCode();

            var responseBody = await res.Content.ReadAsStringAsync().ConfigureAwait(false);

            var response = responseBody.FromInfobipOmniResponseJson();

            return(response?.Messages?.FirstOrDefault());
        }
        private void CheckLocationMessage(InfobipOmniFailoverMessage omniFailoverMessage, Place place)
        {
            Assert.Equal(omniFailoverMessage.ScenarioKey, SCENARIO_KEY);
            CheckDestinations(omniFailoverMessage.Destinations);

            Assert.NotNull(place);

            var geoCoordinate = JsonConvert.DeserializeObject <GeoCoordinates>(JsonConvert.SerializeObject(place.Geo));

            Assert.NotNull(geoCoordinate);

            var whatsAppMessage = omniFailoverMessage.WhatsApp;

            Assert.NotNull(whatsAppMessage);
            Assert.Null(whatsAppMessage.Text);
            Assert.Null(whatsAppMessage.FileUrl);
            Assert.Equal(whatsAppMessage.LocationName, geoCoordinate.Name);
            Assert.Null(whatsAppMessage.AudioUrl);
            Assert.Equal(whatsAppMessage.Address, place.Address);
            Assert.Equal(whatsAppMessage.Latitude, geoCoordinate.Latitude);
            Assert.Equal(whatsAppMessage.Longitude, geoCoordinate.Longitude);
            Assert.Null(whatsAppMessage.ImageUrl);
            Assert.Null(whatsAppMessage.VideoUrl);
            Assert.Null(whatsAppMessage.TemplateNamespace);
            Assert.Null(whatsAppMessage.TemplateData);
            Assert.Null(whatsAppMessage.TemplateName);
            Assert.Null(whatsAppMessage.Language);
            Assert.Null(whatsAppMessage.MediaTemplateData);
        }
Exemple #3
0
 private static void SetMedaUrl(string contentType, InfobipOmniFailoverMessage message, Attachment attachment)
 {
     if (contentType.Contains("audio"))
     {
         message.WhatsApp.AudioUrl = attachment.ContentUrl;
     }
     else if (contentType.Contains("image"))
     {
         message.WhatsApp.ImageUrl = attachment.ContentUrl;
     }
     else if (contentType.Contains("video"))
     {
         message.WhatsApp.VideoUrl = attachment.ContentUrl;
     }
     else
     {
         message.WhatsApp.FileUrl = attachment.ContentUrl;
     }
 }
        private void CheckAudioMessage(InfobipOmniFailoverMessage omniFailoverMessage, Attachment attachment)
        {
            var whatsAppMessage = omniFailoverMessage.WhatsApp;

            Assert.NotNull(whatsAppMessage);
            Assert.Null(whatsAppMessage.Text);
            Assert.Null(whatsAppMessage.FileUrl);
            Assert.Null(whatsAppMessage.LocationName);
            Assert.Equal(whatsAppMessage.AudioUrl, attachment.ContentUrl);
            Assert.Null(whatsAppMessage.Address);
            Assert.Null(whatsAppMessage.Latitude);
            Assert.Null(whatsAppMessage.Longitude);
            Assert.Null(whatsAppMessage.ImageUrl);
            Assert.Null(whatsAppMessage.VideoUrl);
            Assert.Null(whatsAppMessage.TemplateNamespace);
            Assert.Null(whatsAppMessage.TemplateData);
            Assert.Null(whatsAppMessage.TemplateName);
            Assert.Null(whatsAppMessage.Language);
            Assert.Null(whatsAppMessage.MediaTemplateData);
        }
 public static string ToInfobipOmniFailoverOmniMessageJson(this InfobipOmniFailoverMessage self) =>
 JsonConvert.SerializeObject(self, Settings);