diff --git a/CallfireApiClient.nuspec b/CallfireApiClient.nuspec index 85178ab..5429a85 100644 --- a/CallfireApiClient.nuspec +++ b/CallfireApiClient.nuspec @@ -1,7 +1,7 @@ CallfireApiClient - 1.1.14 + 1.1.15 CallFire API v2 client Vladimir Mikhailov @@ -15,6 +15,9 @@ C# client library for integration with Callfire REST API v2 services Callfire API client Changelog ============================= +Version 1.1.15 - Jan 27 2017 +- added dnc apis + Version 1.1.14 - Jan 17 2017 - added possibility to use client without config file diff --git a/Changelog.txt b/Changelog.txt index 43c80f6..ed1046f 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,8 @@ Callfire API client Changelog ============================= +Version 1.1.15 - Jan 27 2017 +- added dnc apis + Version 1.1.14 - Jan 17 2017 - added possibility to use client without config file diff --git a/src/CallfireApiClient.IntegrationTests/Api/CallsTexts/CallsApiIntegrationTest.cs b/src/CallfireApiClient.IntegrationTests/Api/CallsTexts/CallsApiIntegrationTest.cs index dafca86..0f4563f 100644 --- a/src/CallfireApiClient.IntegrationTests/Api/CallsTexts/CallsApiIntegrationTest.cs +++ b/src/CallfireApiClient.IntegrationTests/Api/CallsTexts/CallsApiIntegrationTest.cs @@ -31,8 +31,7 @@ public void FindCalls() { var request = new FindCallsRequest { - States = { StateType.FINISHED, StateType.READY }, - IntervalBegin = DateTime.UtcNow.AddMonths(-2), + IntervalBegin = DateTime.UtcNow.AddMonths(-10), IntervalEnd = DateTime.UtcNow, Limit = 1 }; diff --git a/src/CallfireApiClient.IntegrationTests/Api/Campaigns/CampaignSoundsApiIntegrationTest.cs b/src/CallfireApiClient.IntegrationTests/Api/Campaigns/CampaignSoundsApiIntegrationTest.cs index 59eca47..42fa2dc 100644 --- a/src/CallfireApiClient.IntegrationTests/Api/Campaigns/CampaignSoundsApiIntegrationTest.cs +++ b/src/CallfireApiClient.IntegrationTests/Api/Campaigns/CampaignSoundsApiIntegrationTest.cs @@ -23,7 +23,7 @@ public void TestFind() }; Page campaignSounds = Client.CampaignSoundsApi.Find(request); - Assert.AreEqual(4, campaignSounds.TotalCount); + Assert.True(campaignSounds.TotalCount >= 3); Assert.AreEqual(3, campaignSounds.Items.Count); foreach (var item in campaignSounds.Items) diff --git a/src/CallfireApiClient.IntegrationTests/Api/Campaigns/TextAutoRepliesApiIntegrationTest.cs b/src/CallfireApiClient.IntegrationTests/Api/Campaigns/TextAutoRepliesApiIntegrationTest.cs index 2f38cfa..520b798 100644 --- a/src/CallfireApiClient.IntegrationTests/Api/Campaigns/TextAutoRepliesApiIntegrationTest.cs +++ b/src/CallfireApiClient.IntegrationTests/Api/Campaigns/TextAutoRepliesApiIntegrationTest.cs @@ -26,13 +26,8 @@ public void CrudOperations() Assert.True(textAutoReplies.TotalCount > 0); Assert.AreEqual(textAutoReplies.Items.Count, textAutoReplies.TotalCount); - var savedTextAutoReply = textAutoReplies.Items[textAutoReplies.Items.Count - 1]; - Assert.AreEqual(resourceId.Id, savedTextAutoReply.Id); - Assert.AreEqual(textAutoReply.Number, savedTextAutoReply.Number); - Assert.AreEqual(textAutoReply.Message, savedTextAutoReply.Message); - Assert.AreEqual(textAutoReply.Match, savedTextAutoReply.Match); - savedTextAutoReply = Client.TextAutoRepliesApi.Get(resourceId.Id, "number,message"); + var savedTextAutoReply = Client.TextAutoRepliesApi.Get(resourceId.Id, "number,message"); Console.WriteLine(savedTextAutoReply); Assert.IsNull(savedTextAutoReply.Id); diff --git a/src/CallfireApiClient.IntegrationTests/Api/Contacts/ContactsApiIntegrationTest.cs b/src/CallfireApiClient.IntegrationTests/Api/Contacts/ContactsApiIntegrationTest.cs index 51d5f55..f4584cb 100644 --- a/src/CallfireApiClient.IntegrationTests/Api/Contacts/ContactsApiIntegrationTest.cs +++ b/src/CallfireApiClient.IntegrationTests/Api/Contacts/ContactsApiIntegrationTest.cs @@ -13,16 +13,39 @@ public class ContactsApiIntegrationTest : AbstractIntegrationTest [Test] public void Find() { - var request = new FindContactsRequest - { - Number = new List { "16506190257", "18778973473" }, - Id = new List { 1, 2 } - }; + var request = new FindContactsRequest{}; var contacts = Client.ContactsApi.Find(request); Console.WriteLine(String.Join(",", contacts)); - Assert.AreEqual(1, contacts.Items.Count); - Assert.AreEqual("18088395900", contacts.Items[0].WorkPhone); + Assert.AreEqual(100, contacts.Items.Count); + + string numberToFilter; + numberToFilter = null; + + if (contacts.Items[0].HomePhone != null) + { + numberToFilter = contacts.Items[0].HomePhone; + } + else if (contacts.Items[0].WorkPhone != null) + { + numberToFilter = contacts.Items[0].WorkPhone; + } + else if (contacts.Items[0].MobilePhone != null) + { + numberToFilter = contacts.Items[0].MobilePhone; + } + + if (numberToFilter != null) + { + request = new FindContactsRequest + { + Number = new List { numberToFilter } + }; + contacts = Client.ContactsApi.Find(request); + Assert.True(numberToFilter.Equals(contacts.Items[0].WorkPhone) || + numberToFilter.Equals(contacts.Items[0].MobilePhone) || + numberToFilter.Equals(contacts.Items[0].HomePhone)); + } } [Test] diff --git a/src/CallfireApiClient.IntegrationTests/Api/Contacts/DncApiIntegrationTest.cs b/src/CallfireApiClient.IntegrationTests/Api/Contacts/DncApiIntegrationTest.cs index 2e8af27..c765cec 100644 --- a/src/CallfireApiClient.IntegrationTests/Api/Contacts/DncApiIntegrationTest.cs +++ b/src/CallfireApiClient.IntegrationTests/Api/Contacts/DncApiIntegrationTest.cs @@ -10,8 +10,7 @@ namespace CallfireApiClient.IntegrationTests.Api.Contacts [TestFixture] public class DncApiIntegrationTest : AbstractIntegrationTest { - //TODO vmalinovskiy: uncomment when dnc apis will be tested and available on docs site - /* + [Test] public void FindDncs() { @@ -107,6 +106,6 @@ public void FindUniversalDncs() Assert.NotNull(uDncs[0].OutboundCall); Assert.NotNull(uDncs[0].OutboundText); } - */ + } } \ No newline at end of file diff --git a/src/CallfireApiClient.IntegrationTests/Api/Numbers/NumberLeasesApiIntegrationTest.cs b/src/CallfireApiClient.IntegrationTests/Api/Numbers/NumberLeasesApiIntegrationTest.cs index 3f76bca..d460c85 100644 --- a/src/CallfireApiClient.IntegrationTests/Api/Numbers/NumberLeasesApiIntegrationTest.cs +++ b/src/CallfireApiClient.IntegrationTests/Api/Numbers/NumberLeasesApiIntegrationTest.cs @@ -30,7 +30,7 @@ public void GetNumberLease() Assert.IsNotNull(lease.Region); Assert.AreEqual(number, lease.PhoneNumber); - Assert.AreEqual(lease.Labels.Count, 2); + Assert.True(lease.Labels.Count > 0); Assert.That(lease.Region.City, Is.StringContaining("LOS ANGELES")); } diff --git a/src/CallfireApiClient.IntegrationTests/Api/Webhooks/WebhooksApiIntegrationTest.cs b/src/CallfireApiClient.IntegrationTests/Api/Webhooks/WebhooksApiIntegrationTest.cs index b1d9413..575117f 100644 --- a/src/CallfireApiClient.IntegrationTests/Api/Webhooks/WebhooksApiIntegrationTest.cs +++ b/src/CallfireApiClient.IntegrationTests/Api/Webhooks/WebhooksApiIntegrationTest.cs @@ -32,7 +32,7 @@ public void CrudOperations() Fields = "items(id,callback,name,resource,events,singleUse)" }; var page = api.Find(findRequest); - Assert.That(page.Items.Count > 1); + Assert.That(page.Items.Count > 0); Assert.AreEqual("test_name1", page.Items[0].Name); Assert.AreEqual("test_callback", page.Items[0].Callback); Assert.AreEqual(ResourceType.TEXT_BROADCAST, page.Items[0].Resource); diff --git a/src/CallfireApiClient.Tests/Api/Contacts/DncApiTest.cs b/src/CallfireApiClient.Tests/Api/Contacts/DncApiTest.cs index 58bc18d..5c31a84 100644 --- a/src/CallfireApiClient.Tests/Api/Contacts/DncApiTest.cs +++ b/src/CallfireApiClient.Tests/Api/Contacts/DncApiTest.cs @@ -12,8 +12,7 @@ namespace CallfireApiClient.Tests.Api.Contacts [TestFixture] public class DncApiTest : AbstractApiTest { - //TODO vmalinovskiy: uncomment when dnc apis will be tested and available on docs site - /* + [Test] public void Find() { @@ -177,6 +176,6 @@ public void FindUniversalDncs() Assert.That(restRequest.Value.Parameters, Has.Some.Matches(p => p.Name.Equals("fromNumber") && p.Value.Equals("18442800143"))); Assert.That(restRequest.Value.Parameters, Has.Some.Matches(p => p.Name.Equals("fields") && p.Value.Equals(FIELDS))); } - */ + } } \ No newline at end of file diff --git a/src/CallfireApiClient/Api/Contacts/DncApi.cs b/src/CallfireApiClient/Api/Contacts/DncApi.cs index 9e120cf..c3c1282 100644 --- a/src/CallfireApiClient/Api/Contacts/DncApi.cs +++ b/src/CallfireApiClient/Api/Contacts/DncApi.cs @@ -7,8 +7,7 @@ namespace CallfireApiClient.Api.Contacts { public class DncApi { - //TODO vmalinovskiy: uncomment when dnc apis will be tested and available on docs site - /* + private const string DNC_PATH = "/contacts/dncs"; private const string DNC_SOURCES_PATH = "/contacts/dncs/sources/{}"; private const string UNIVERSAL_DNC_PATH = "/contacts/dncs/universals/{}"; @@ -146,6 +145,6 @@ public void DeleteDncsFromSource(string source) string path = DNC_SOURCES_PATH.ReplaceFirst(ClientConstants.PLACEHOLDER, source); Client.Delete(path); } - */ + } } diff --git a/src/CallfireApiClient/Api/Contacts/Model/DoNotContact.cs b/src/CallfireApiClient/Api/Contacts/Model/DoNotContact.cs index ca99c87..9e9402c 100644 --- a/src/CallfireApiClient/Api/Contacts/Model/DoNotContact.cs +++ b/src/CallfireApiClient/Api/Contacts/Model/DoNotContact.cs @@ -5,17 +5,17 @@ namespace CallfireApiClient.Api.Contacts.Model { public class DoNotContact : CallfireModel { - public string Number { get; set; } - public bool? Call { get; set; } - public bool? Text { get; set; } - //public long? CampaignId { get; private set; } - //public string Source { get; set; } - //public DateTime? Created { get; private set; } + public string Number { get; private set; } + public bool? Call { get; private set; } + public bool? Text { get; private set; } + public long? CampaignId { get; private set; } + public string Source { get; private set; } + public DateTime? Created { get; private set; } public override string ToString() { - return string.Format("[DoNotContact: number={0}, call={1}, text={2}", - Number, Call, Text); + return string.Format("[DoNotContact: number={0}, call={1}, text={2}, campaignId={3}, source={4}, created={5}", + Number, Call, Text, CampaignId, Source, Created); } } } \ No newline at end of file diff --git a/src/CallfireApiClient/CallfireClient.cs b/src/CallfireApiClient/CallfireClient.cs index c1f23b2..747d7aa 100644 --- a/src/CallfireApiClient/CallfireClient.cs +++ b/src/CallfireApiClient/CallfireClient.cs @@ -68,8 +68,7 @@ public void SetClientConfig(ClientConfig config) public KeywordLeasesApi KeywordLeasesApi { get { return _KeywordLeasesApi.Value; } } - //TODO vmalinovskiy: uncomment when dnc apis will be tested and available on docs site - //public DncApi DncApi { get { return _DncApi.Value; } } + public DncApi DncApi { get { return _DncApi.Value; } } public CallsApi CallsApi { get { return _CallsApi.Value; } } @@ -99,10 +98,7 @@ public CallfireClient(string username, string password) _WebhooksApi = new Lazy(() => new WebhooksApi(RestApiClient)); _KeywordsApi = new Lazy(() => new KeywordsApi(RestApiClient)); _KeywordLeasesApi = new Lazy(() => new KeywordLeasesApi(RestApiClient)); - - //TODO vmalinovskiy: uncomment when dnc apis will be tested and available on docs site - //_DncApi = new Lazy(() => new DncApi(RestApiClient)); - + _DncApi = new Lazy(() => new DncApi(RestApiClient)); _CallsApi = new Lazy(() => new CallsApi(RestApiClient)); _TextsApi = new Lazy(() => new TextsApi(RestApiClient)); _TextAutoRepliesApi = new Lazy(() => new TextAutoRepliesApi(RestApiClient)); diff --git a/src/CallfireApiClient/Properties/AssemblyInfo.cs b/src/CallfireApiClient/Properties/AssemblyInfo.cs index 2e887de..6715058 100644 --- a/src/CallfireApiClient/Properties/AssemblyInfo.cs +++ b/src/CallfireApiClient/Properties/AssemblyInfo.cs @@ -13,7 +13,7 @@ // The form "{Major}.{Minor}.*" will automatically update the build and revision, // and "{Major}.{Minor}.{Build}.*" will update just the revision. -[assembly: AssemblyVersion("1.1.14.*")] +[assembly: AssemblyVersion("1.1.15.*")] // The following attributes are used to specify the signing key for the assembly, // if desired. See the Mono documentation for more information about signing.