Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SDK changes for Import Campaign API #273

Merged
merged 6 commits into from
Mar 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Sajal-Singhal marked this conversation as resolved.
Show resolved Hide resolved
{
[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
Loading