Skip to content

Commit

Permalink
SDK changes for Import Campaign API (#273)
Browse files Browse the repository at this point in the history
* SDK changes for Import Campaign API

* changelog, minor change and updated version

* including error field in a response

* Removing error field

* adding callback url in req payload of test file

* updating change log date

---------

Co-authored-by: Thumpala Vinay Kumar <[email protected]>
Co-authored-by: Sajal Singhal <[email protected]>
Co-authored-by: Sajal Singhal <[email protected]>
  • Loading branch information
4 people authored Mar 13, 2024
1 parent dbfedcf commit d69101c
Show file tree
Hide file tree
Showing 10 changed files with 120 additions and 6 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Change Log

## [5.43.0](https://github.com/plivo/plivo-dotnet/tree/v5.43.0) (2024-03-13)
**Feature - Import Campaign API**
- Added: Import Campaign API

## [5.42.3](https://github.com/plivo/plivo-dotnet/tree/v5.42.3) (2024-03-01)
**Feature - Log Redaction Enhancement**
- Added log attribute in GET and List MDR response
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ You can install this SDK either by referencing the .dll file or using NuGet.
Use the following line to install the latest SDK using the NuGet CLI.

```
PM> Install-Package Plivo -Version 5.42.3
PM> Install-Package Plivo -Version 5.43.0
```

You can also use the .NET CLI to install this package as follows

```
> dotnet add package Plivo --version 5.42.3
> dotnet add package Plivo --version 5.43.0
```

## Getting started
Expand Down
2 changes: 1 addition & 1 deletion src/Plivo/Plivo.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard1.3</TargetFrameworks>
<ReleaseVersion>5.42.3</ReleaseVersion>
<ReleaseVersion>5.43.0</ReleaseVersion>
<Version />
<Authors>Plivo SDKs Team</Authors>
<Owners>Plivo Inc.</Owners>
Expand Down
3 changes: 2 additions & 1 deletion src/Plivo/Plivo.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@
<summary>A .NET SDK to make voice calls and send SMS using Plivo and to generate Plivo XML</summary>
<description>A .NET SDK to make voice calls and send SMS using Plivo and to generate Plivo XML</description>
<id>Plivo</id>
<version>5.42.3</version>
<version>5.43.0</version>
<title>Plivo</title>
<authors>Plivo SDKs Team</authors>
<owners>Plivo, Inc.</owners>
<licenseUrl>https://github.com/plivo/plivo-dotnet/blob/master/LICENSE.txt</licenseUrl>
<projectUrl>http://github.com/plivo/plivo-dotnet</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<releaseNotes>
* 5.43.0 Added Import Campaign API
* 5.42.0 Added Params `vertical`, `campaign_alias` for GET and LIST Campaigns.
* 5.41.1 Support Params `from_number` and `to_number` for LIST Message.
* 5.41.0 Added New Params `error_code`, `error_reason` for GET and LIST Campaign.
Expand Down
18 changes: 18 additions & 0 deletions src/Plivo/Resource/Campaign/Campaign.cs
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,24 @@ 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 Message {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
2 changes: 1 addition & 1 deletion src/Plivo/Version.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public class Version
/// <summary>
/// DotNet SDK version
/// </summary>
public const string SdkVersion = "5.42.3";
public const string SdkVersion = "5.43.0";
/// <summary>
/// Plivo API version
/// </summary>
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", "http://plivobin.non-prod.plivops.com/1ojprmd1"},
{"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
2 changes: 1 addition & 1 deletion version.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "5.42.3",
"version": "5.43.0",
"publicReleaseRefSpec": [
"^refs/heads/master$",
"^refs/heads/v\\d+(?:\\.\\d+)?$"
Expand Down

0 comments on commit d69101c

Please sign in to comment.