Skip to content
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
9 changes: 8 additions & 1 deletion CallfireApiClient.nuspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?><package>
<metadata>
<id>CallfireApiClient</id>
<version>1.1.18</version>
<version>1.1.19</version>
<title>CallFire API v2 client</title>
<authors>
Vladimir Mikhailov
Expand All @@ -15,6 +15,13 @@
<description>C# client library for integration with Callfire REST API v2 services</description>
<releaseNotes>Callfire API client Changelog
=============================
Version 1.1.19 - Jun 13 2017
- added fromNumber to Recipient object for sending calls/texts
- added strictValidation flag for adding contacts to broadcast
- added useCustomFields to createContactList/addContactListContacts apis
- added media array parameter for TextRecipient
- added a way to upload files from byte array for media and campaign sounds api

Version 1.1.18 - May 29 2017
- upgraded dependencies

Expand Down
7 changes: 7 additions & 0 deletions Changelog.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
Callfire API client Changelog
=============================
Version 1.1.19 - Jun 13 2017
- added fromNumber to Recipient object for sending calls/texts
- added strictValidation flag for adding contacts to broadcast
- added useCustomFields to createContactList/addContactListContacts apis
- added media array parameter for TextRecipient
- added a way to upload files from byte array for media and campaign sounds api

Version 1.1.18 - May 29 2017
- upgraded dependencies

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public void SendCall()
var contacts = Client.ContactsApi.Find(new FindContactsRequest());

var recipient1 = new CallRecipient { ContactId = contacts.Items[0].Id, LiveMessage = "testMessage", TransferDigit = "1", TransferMessage = "transferTestMessage", TransferNumber = "14246525473" };
var recipient2 = new CallRecipient { ContactId = contacts.Items[0].Id, LiveMessage = "testMessage", TransferDigit = "1", TransferMessageSoundId = 1, TransferNumber = "14246525473" };
var recipient2 = new CallRecipient { ContactId = contacts.Items[0].Id, LiveMessage = "testMessage", TransferDigit = "1", TransferMessageSoundId = 1, TransferNumber = "14246525473", FromNumber = "12132041238" };
var recipients = new List<CallRecipient> { recipient1, recipient2 };

IList<Call> calls = Client.CallsApi.Send(recipients, null, "items(id,fromNumber,state)");
Expand All @@ -66,7 +66,8 @@ public void SendCall()
Fields = "items(id, fromNumber, state, campaignId)",
DefaultLiveMessage = "DefaultLiveMessage",
DefaultMachineMessage = "DefaultMachineMessage",
DefaultVoice = CallfireApiClient.Api.Campaigns.Model.Voice.FRENCHCANADIAN1
DefaultVoice = Voice.FRENCHCANADIAN1,
StrictValidation = true
};
calls = Client.CallsApi.Send(request);
Assert.AreEqual(2, calls.Count);
Expand All @@ -79,7 +80,7 @@ public void SendCall()
Fields = "items(id, fromNumber, state, campaignId)",
DefaultLiveMessageSoundId = 1,
DefaultMachineMessageSoundId = 1,
DefaultVoice = CallfireApiClient.Api.Campaigns.Model.Voice.FRENCHCANADIAN1
DefaultVoice = Voice.FRENCHCANADIAN1
};
calls = Client.CallsApi.Send(request);
Assert.AreEqual(2, calls.Count);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,15 @@ public void TestUpload()
Assert.NotNull(wavResourceId.Id);
}

[Test]
public void TestUploadWithFileData()
{
String soundName = "mp3_test_" + DateTime.Now.Millisecond.ToString();
ResourceId wavResourceId = Client.MediaApi.Upload(File.ReadAllBytes(wavFilePath), MediaType.WAV);
ResourceId mp3ResourceId = Client.MediaApi.Upload(File.ReadAllBytes(mp3FilePath), MediaType.MP3, soundName);
Assert.NotNull(mp3ResourceId.Id);
}

[Test]
public void TestGet()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public void FindAndGetParticularTexts()
public void SendText()
{
var recipient1 = new TextRecipient { Message = "msg", PhoneNumber = "12132212384" };
var recipient2 = new TextRecipient { Message = "msg", PhoneNumber = "12132212384" };
var recipient2 = new TextRecipient { Message = "msg", PhoneNumber = "12132212384", FromNumber = "12132041238" };
var recipients = new List<TextRecipient> { recipient1, recipient2 };

IList<CallfireApiClient.Api.CallsTexts.Model.Text> texts = Client.TextsApi.Send(recipients, null, "items(id,fromNumber,state)");
Expand All @@ -54,7 +54,8 @@ public void SendText()
Recipients = recipients,
CampaignId = 7415135003,
DefaultMessage = "DefaultLiveMessage",
Fields = "items(id,fromNumber,state)"
Fields = "items(id,fromNumber,state)",
StrictValidation = true
};
texts = Client.TextsApi.Send(request);
CallfireApiClient.Api.CallsTexts.Model.Text text = Client.TextsApi.Get((long)texts[0].Id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ public void VoiceBroadcastCrudOperations()
TimeZone = "America/New_York",
DaysOfWeek = new HashSet<DayOfWeek> { DayOfWeek.MONDAY, DayOfWeek.FRIDAY } }
},
ResumeNextDay = true
ResumeNextDay = true,
};
var id = Client.CallBroadcastsApi.Create(broadcast, true);
var id = Client.CallBroadcastsApi.Create(broadcast, true, true);
System.Console.WriteLine("broadcast id: " + id);
var savedBroadcast = Client.CallBroadcastsApi.Get(id.Id);
Assert.AreEqual(broadcast.Name, savedBroadcast.Name);
Expand Down Expand Up @@ -77,7 +77,7 @@ public void IvrsCrudOperations()

savedBroadcast.Name = "updated_name";
savedBroadcast.DialplanXml = "<dialplan name=\"Root\">\r\n\t<play type=\"tts\">Congratulations! You have successfully configured a CallFire I V R.</play>\r\n</dialplan>";
Client.CallBroadcastsApi.Update(savedBroadcast);
Client.CallBroadcastsApi.Update(savedBroadcast, true);

var updatedBroadcast = Client.CallBroadcastsApi.Get(id.Id, "id,name");
Assert.Null(updatedBroadcast.Status);
Expand Down Expand Up @@ -186,7 +186,7 @@ public void AddRecipientsAndAddRemoveBatches()
{
new Recipient { PhoneNumber = "12132212384" },
new Recipient { PhoneNumber = "12132212385" }
});
}, null, true);
System.Console.WriteLine(calls);
Assert.AreEqual(2, calls.Count);

Expand All @@ -204,7 +204,8 @@ public void AddRecipientsAndAddRemoveBatches()
{
new Recipient { PhoneNumber = "12132212386" },
new Recipient { PhoneNumber = "12132212387" }
}
},
StrictValidation = true
};
ResourceId addedBatchId = Client.CallBroadcastsApi.AddBatch(addBatchRequest);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,22 @@ public void TestUploadSoundAndDeleteIt()

}

[Test]
public void TestUploadSoundWithFileDataAndDeleteIt()
{
String soundName = "mp3_test_" + DateTime.Now.ToString();
string mp3FilePath = "Resources/File-examples/train1.mp3";
CampaignSound campaignSound = Client.CampaignSoundsApi.UploadAndGetSoundDetails(File.ReadAllBytes(mp3FilePath), soundName);
Assert.NotNull(campaignSound.Id);

Client.CampaignSoundsApi.Delete((long)campaignSound.Id);

FindSoundsRequest request = new FindSoundsRequest { Filter = soundName };
Page<CampaignSound> campaignSounds = Client.CampaignSoundsApi.Find(request);
Assert.True(campaignSounds.Items.Count == 0);

}

[Test, Ignore("performs real call to specified number")]
public void TestCallInToRecord()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@ public void CrudOperations()
},
ResumeNextDay = true
};
var id = Client.TextBroadcastsApi.Create(broadcast, true);
var id = Client.TextBroadcastsApi.Create(broadcast, true, true);
var savedBroadcast = Client.TextBroadcastsApi.Get(id.Id);
Assert.AreEqual(broadcast.Name, savedBroadcast.Name);
Assert.AreEqual(savedBroadcast.ResumeNextDay, true);
savedBroadcast.Name = "updated_name";
savedBroadcast.ResumeNextDay = false;
Client.TextBroadcastsApi.Update(savedBroadcast);
Client.TextBroadcastsApi.Update(savedBroadcast, true);

var updatedBroadcast = Client.TextBroadcastsApi.Get(id.Id, "id,name");
Assert.Null(updatedBroadcast.Status);
Expand Down Expand Up @@ -148,7 +148,7 @@ public void AddRecipientsAndAddRemoveBatches()
new TextRecipient { PhoneNumber = "14246525473" },
new TextRecipient { PhoneNumber = "12132041238" }
};
var texts = Client.TextBroadcastsApi.AddRecipients((long)id, recipients);
var texts = Client.TextBroadcastsApi.AddRecipients((long)id, recipients, null, true);
Console.WriteLine(texts);
Assert.AreEqual(2, texts.Count);
Assert.That(texts[0].Message, Is.StringStarting("test_msg"));
Expand All @@ -167,7 +167,8 @@ public void AddRecipientsAndAddRemoveBatches()
{
new TextRecipient { PhoneNumber = "14246525473" },
new TextRecipient { PhoneNumber = "12132041238" }
}
},
StrictValidation = true
};
ResourceId addedBatchId = Client.TextBroadcastsApi.AddBatch(addBatchRequest);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public void TestFindContactLists()
public void TestCreateContactListFromFile()
{
string path = "Resources/File-examples/contacts1.csv";
ResourceId listId = Client.ContactListsApi.CreateFromCsv("fileList", Path.GetFullPath(path));
ResourceId listId = Client.ContactListsApi.CreateFromCsv("fileList", Path.GetFullPath(path), true);

ContactList contactList = Client.ContactListsApi.Get(listId.Id);
Assert.AreEqual(2, contactList.Size);
Expand All @@ -39,7 +39,8 @@ public void TestContactListCRUD()
CreateContactListRequest<string> request = new CreateContactListRequest<string>
{
Contacts = new List<string> { "12135543211", "12135678882" },
Name = "listFromNumbers"
Name = "listFromNumbers",
UseCustomFields = true
};
ResourceId numbersListId = Client.ContactListsApi.Create(request);

Expand Down Expand Up @@ -93,14 +94,16 @@ public void TestContactListItemsCRUD()
CreateContactListRequest<Contact> request = new CreateContactListRequest<Contact>
{
Contacts = new List<Contact> { c1, c2 },
Name = "listFromContacts"
Name = "listFromContacts",
UseCustomFields = true
};
ResourceId id = Client.ContactListsApi.Create(request);

AddContactListContactsRequest<string> addItemsRequest = new AddContactListContactsRequest<string>
{
ContactListId = id.Id,
Contacts = new List<string> { "12345543211" }
Contacts = new List<string> { "12345543211" },
UseCustomFields = true
};
Client.ContactListsApi.AddListItems(addItemsRequest);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ public void CrudOperations()
Assert.NotNull(resourceId1.Id);
webhook.Name = "test_name2";
var resourceId2 = api.Create(webhook);
webhook.Resource = ResourceType.CONTACT_LIST;
webhook.Events = new HashSet<ResourceEvent> { ResourceEvent.VALIDATION_FINISHED };
var resourceId3 = api.Create(webhook);

var findRequest = new FindWebhooksRequest
{
Expand All @@ -50,6 +53,7 @@ public void CrudOperations()

api.Delete((long)resourceId1.Id);
api.Delete((long)resourceId2.Id);
api.Delete((long)resourceId3.Id);

Assert.Throws<ResourceNotFoundException>(() => api.Get((long)resourceId1.Id));
Assert.Throws<ResourceNotFoundException>(() => api.Get((long)resourceId2.Id));
Expand Down
8 changes: 5 additions & 3 deletions src/CallfireApiClient.Tests/Api/CallsTexts/CallsApiTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public void SendCalls()
var restRequest = MockRestResponse(responseJson);

CallRecipient r1 = new CallRecipient { PhoneNumber = "12135551100", LiveMessage = "Why hello there!", TransferDigit = "1", TransferMessage = "testMessage", TransferNumber = "12135551101" };
CallRecipient r2 = new CallRecipient { PhoneNumber = "12135551101", LiveMessage = "And hello to you too." };
CallRecipient r2 = new CallRecipient { PhoneNumber = "12135551101", LiveMessage = "And hello to you too.", FromNumber = "12135551102" };
IList<Call> calls = Client.CallsApi.Send(new List<CallRecipient> { r1, r2 });

Assert.That(Serializer.Serialize(new ListHolder<Call>(calls)), Is.EqualTo(responseJson));
Expand All @@ -45,7 +45,7 @@ public void SendCallsUsingRequest()
var restRequest = MockRestResponse(responseJson);

CallRecipient r1 = new CallRecipient { PhoneNumber = "12135551100", LiveMessage = "Why hello there!", TransferDigit = "1", TransferMessage = "testMessage", TransferNumber = "12135551101" };
CallRecipient r2 = new CallRecipient { PhoneNumber = "12135551101", LiveMessage = "And hello to you too." };
CallRecipient r2 = new CallRecipient { PhoneNumber = "12135551101", LiveMessage = "And hello to you too.", FromNumber = "12135551102" };

var request = new SendCallsRequest
{
Expand All @@ -56,7 +56,8 @@ public void SendCallsUsingRequest()
DefaultMachineMessage = "DefaultMachineMessage",
DefaultLiveMessageSoundId = 1,
DefaultMachineMessageSoundId = 1,
DefaultVoice = CallfireApiClient.Api.Campaigns.Model.Voice.FRENCHCANADIAN1
DefaultVoice = Voice.FRENCHCANADIAN1,
StrictValidation = true
};

IList<Call> calls = Client.CallsApi.Send(request);
Expand All @@ -75,6 +76,7 @@ public void SendCallsUsingRequest()
Assert.That(restRequest.Value.Resource, !Is.StringContaining("defaultMachineMessageSoundId=1"));
Assert.That(restRequest.Value.Resource, !Is.StringContaining("defaultMachineMessageSoundId=1"));
Assert.That(restRequest.Value.Resource, !Is.StringContaining("defaultVoice=FRENCHCANADIAN1"));
Assert.That(restRequest.Value.Resource, !Is.StringContaining("strictValidation=TRUE"));
}

[Test]
Expand Down
14 changes: 14 additions & 0 deletions src/CallfireApiClient.Tests/Api/CallsTexts/MediaApiTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using CallfireApiClient.Api.CallsTexts.Model;
using RestSharp;
using System;
using System.IO;

namespace CallfireApiClient.Tests.Api.CallsTexts
{
Expand All @@ -24,6 +25,19 @@ public void Upload()
Assert.AreEqual(Method.POST, restRequest.Value.Method);
}

[Test]
public void UploadWithFileData()
{
string expectedJson = GetJsonPayload("/callstexts/mediaApi/response/uploadSound.json");
var restRequest = MockRestResponse(expectedJson);

string mp3FilePath = "Resources/File-examples/train.mp3";
ResourceId id = Client.MediaApi.Upload(File.ReadAllBytes(mp3FilePath), MediaType.MP3, "fname");

Assert.That(Serializer.Serialize(id), Is.EqualTo(expectedJson));
Assert.AreEqual(Method.POST, restRequest.Value.Method);
}

[Test]
public void GetMedia()
{
Expand Down
8 changes: 5 additions & 3 deletions src/CallfireApiClient.Tests/Api/CallsTexts/TextsApiTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public void SendTexts()
var restRequest = MockRestResponse(responseJson);

TextRecipient r1 = new TextRecipient { PhoneNumber = "12135551100", Message = "Hello World!" };
TextRecipient r2 = new TextRecipient { PhoneNumber = "12135551101", Message = "Testing 1 2 3" };
TextRecipient r2 = new TextRecipient { PhoneNumber = "12135551101", Message = "Testing 1 2 3", FromNumber = "12135551102" };

IList<CallfireApiClient.Api.CallsTexts.Model.Text> texts = Client.TextsApi.Send(new List<TextRecipient> { r1, r2 });

Expand All @@ -42,14 +42,15 @@ public void SendTextsUsingRequest()
var restRequest = MockRestResponse(responseJson);

TextRecipient r1 = new TextRecipient { PhoneNumber = "12135551100", Message = "Hello World!" };
TextRecipient r2 = new TextRecipient { PhoneNumber = "12135551101", Message = "Testing 1 2 3" };
TextRecipient r2 = new TextRecipient { PhoneNumber = "12135551101", Message = "Testing 1 2 3", FromNumber = "12135551102" };

var request = new SendTextsRequest
{
Recipients = new List<TextRecipient> { r1, r2 },
CampaignId = 100,
Fields = FIELDS,
DefaultMessage = "defaultMessage"
DefaultMessage = "defaultMessage",
StrictValidation = true
};

IList<CallfireApiClient.Api.CallsTexts.Model.Text> texts = Client.TextsApi.Send(request);
Expand All @@ -61,6 +62,7 @@ public void SendTextsUsingRequest()
Assert.That(restRequest.Value.Parameters, Has.Some.Matches<Parameter>(p => p.Name.Equals("fields") && p.Value.Equals(FIELDS)));
Assert.That(restRequest.Value.Parameters, Has.Some.Matches<Parameter>(p => p.Name.Equals("campaignId") && p.Value.Equals("100")));
Assert.That(restRequest.Value.Parameters, Has.Some.Matches<Parameter>(p => p.Name.Equals("defaultMessage") && p.Value.Equals("defaultMessage")));
Assert.That(restRequest.Value.Parameters, Has.Some.Matches<Parameter>(p => p.Name.Equals("strictValidation") && p.Value.Equals("True")));
}

[Test]
Expand Down
Loading