From a4cfa4409258e12b054c9ec9b607b77a4dcc5df8 Mon Sep 17 00:00:00 2001 From: Saurabh Newatiya Date: Wed, 4 Oct 2023 16:32:42 +0545 Subject: [PATCH 1/6] inital commit for adding whatsapp support --- src/Plivo/Resource/Message/Message.cs | 23 +- .../Resource/Message/MessageInterface.cs | 221 +++++++++++++++++- .../Plivo.Test/Mocks/messageGetResponse.json | 5 +- .../Plivo.Test/Mocks/messageListResponse.json | 100 ++++++-- 4 files changed, 315 insertions(+), 34 deletions(-) diff --git a/src/Plivo/Resource/Message/Message.cs b/src/Plivo/Resource/Message/Message.cs index 74114420..dfb1f4ca 100755 --- a/src/Plivo/Resource/Message/Message.cs +++ b/src/Plivo/Resource/Message/Message.cs @@ -160,6 +160,24 @@ public class Message : Resource /// DLT Template Category. public string DltTemplateCategory { get; set; } + /// + /// Gets or sets the conversation id. + /// + /// The conversation id. + public string ConversationID { get; set; } + + /// + /// Gets or sets the conversation origin. + /// + /// The conversation origin. + public string ConversationOrigin { get; set; } + + /// + /// Gets or sets the conversation expiration timestamp. + /// + /// The conversation expiration timestamp. + public string ConversationExpirationTimestamp { get; set; } + public override string ToString() { return "\n" + @@ -188,7 +206,10 @@ public override string ToString() "ReplacedSender: " + ReplacedSender + "\n" + "DLTEntityID: " + DltEntityId + "\n" + "DLTTemplateID: " + DltTemplateId + "\n" + - "DLTTemplateCategory: " + DltTemplateCategory + "\n"; + "DLTTemplateCategory: " + DltTemplateCategory + "\n" + + "ConversationID: " + ConversationID + "\n" + + "ConversationOrigin: " + ConversationOrigin + "\n" + + "ConversationExpirationTimestamp: " + ConversationExpirationTimestamp + "\n"; } #region ListMedia /// diff --git a/src/Plivo/Resource/Message/MessageInterface.cs b/src/Plivo/Resource/Message/MessageInterface.cs index 321e5530..7489c509 100755 --- a/src/Plivo/Resource/Message/MessageInterface.cs +++ b/src/Plivo/Resource/Message/MessageInterface.cs @@ -4,6 +4,7 @@ using System.Reflection; using System.Threading.Tasks; using Plivo.Client; +using Newtonsoft.Json; namespace Plivo.Resource.Message @@ -41,16 +42,43 @@ public MessageInterface(HttpClient client) : base(client) /// dlt_entity_id /// dlt_template_id /// dlt_template_category + /// template + /// template_json_string public MessageCreateResponse Create( List dst, string text = null, string src = null, string type = null, string url = null, string method = null, bool? log = null, bool? trackable = null, string powerpack_uuid = null, string[] media_urls = null, string[] media_ids = null, - string dlt_entity_id = null, string dlt_template_id = null, string dlt_template_category = null) + string dlt_entity_id = null, string dlt_template_id = null, string dlt_template_category = null, Template template = null, string template_json_string = null) { string _dst = string.Join("<", dst); Dictionary data = null; var mandatoryParams = new List { "" }; + // Adding validations for whatsapp cases with template passed + if (template_json_string != null && template != null) + { + return getResponseValidation("template parameter is already set."); + } + else + { + if (template_json_string != null) + { + var settings = new JsonSerializerSettings{NullValueHandling = NullValueHandling.Ignore}; + template = JsonConvert.DeserializeObject