Skip to content

Commit

Permalink
SDK changes for Import Campaign API
Browse files Browse the repository at this point in the history
  • Loading branch information
Thumpala Vinay Kumar authored and Thumpala Vinay Kumar committed Feb 19, 2024
1 parent c6367a8 commit 693c47a
Show file tree
Hide file tree
Showing 4 changed files with 110 additions and 0 deletions.
19 changes: 19 additions & 0 deletions src/Plivo/Resource/Campaign/Campaign.cs
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,25 @@ public override string ToString()
}
}

[JsonObject(MemberSerialization.OptIn)]
public class ImportCampaign: Resource
{
[JsonProperty("api_id")]
public new string ApiId {get; set;}

[JsonProperty("campaign_id")]
public new string CampaignId {get; set;}

[JsonProperty("message")]
public new string Messgae {get; set;}


public override string ToString()
{
return JsonConvert.SerializeObject(this, Formatting.Indented);
}
}

[JsonObject(MemberSerialization.OptIn)]
public class ListCampaigns: Resource
{
Expand Down
52 changes: 52 additions & 0 deletions src/Plivo/Resource/Campaign/CampaignInterface.cs
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,58 @@ public async Task<CreateCampaign> CreateAsync(string campaign_alias, string bran
}
#endregion

#region Import
///<summary>
/// Import Campaign with specified campaign_id, campaign_alias.
///</summary>
/// <returns>The import.</returns>
/// <param name="campaign_id">campaign_id</param>
/// <param name="campaign_alias">campaign_alias</param>
public ImportCampaign Import(string campaign_id,string campaign_alias,string url=null, string method=null)

{
var mandatoryParams = new List<string>{"campaign_id","campaign_alias"};
var data = CreateData(
mandatoryParams,
new
{
campaign_id,
campaign_alias,
url,
method
});
return ExecuteWithExceptionUnwrap(() =>
{
var result = Task.Run(async () => await Client.Update<ImportCampaign>(Uri + "10dlc/Campaign/Import/", data).ConfigureAwait(false)).Result;
result.Object.StatusCode = result.StatusCode;
return result.Object;
});
}


/// <summary>
/// Import Campaign.
///<returns> The import.</returns>
/// <param name="campaign_id">campaign_id</param>
/// <param name="campaign_alias">campaign_alias</param>
public async Task<ImportCampaign> ImportAsync(string campaign_id,string campaign_alias,string url=null, string method=null)
{
var mandatoryParams = new List<string>{"campaign_id","campaign_alias"};
var data = CreateData(
mandatoryParams,
new
{
campaign_id,
campaign_alias,
url,
method
});

var result = await Client.Update<ImportCampaign>(Uri + "10dlc/Campaign/Import/", data);
result.Object.StatusCode = result.StatusCode;
return result.Object;
}
#endregion
#region Update
/// <summary>
/// Update Campaign with the specified sample, keyword etc.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"api_id": "2c6c5e16-090a-11ed-bb48-0242ac110004",
"campaign_id": "CNTQ0OD",
"message": "Request to import campaign was received and is being processed."
}
34 changes: 34 additions & 0 deletions tests_netcore/Plivo.NetCore.Test/Resources/TestCampaign.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,40 @@ public void TestCampaignCreate()
AssertRequest(request);
}

[Fact]
public void TestCampaignImport()
{
var data = new Dictionary<string, object>()
{
{"campaign_id", "CNTQ0OD"},
{"campaign_alias", "New Contact by vinay for ct"},
{"url", "/v1/Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/Import/"},
{"method", "POST"}
};

var request =
new PlivoRequest(
"POST",
"Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/Import/",
"",
data);

var response =
System.IO.File.ReadAllText(
SOURCE_DIR + @"../Mocks/campaignImportResponse.json"
);
Setup<ImportCampaign>(
200,
response
);
Assert.Empty(
ComparisonUtilities.Compare(
response,
Api.Campaign.Import(campaign_id:"CNTQ0OD", campaign_alias:"New Contact by vinay for ct", url:"/v1/Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/Import/", method:"POST")));

AssertRequest(request);
}


[Fact]
public void TestCampaignUpdate()
Expand Down

0 comments on commit 693c47a

Please sign in to comment.