public static async Task <string> GetValidSenderEmail(MailjetClient client) { MailjetRequest request = new MailjetRequest { Resource = Sender.Resource }; MailjetResponse response = await client.GetAsync(request); Assert.AreEqual(200, response.StatusCode); foreach (var emailObject in response.GetData()) { if (emailObject.Type != JTokenType.Object) { continue; } if (emailObject.Value <string>("Status") == "Active") { return(emailObject.Value <string>("Email")); } } Assert.Fail("Cannot find Active sender address under given account"); throw new AssertFailedException(); }
public void TestSmsStatisticsAsync() { var expectedData = new JArray(); var mockHttp = new MockHttpMessageHandler(); var jsonResponse = GenerateJsonResponse(1, 1, expectedData); // Setup a respond for the user api (including a wildcard in the URL) mockHttp.When("https://api.mailjet.com/v4/*") .Respond(JsonMediaType, jsonResponse); // Respond with JSON IMailjetClient client = new MailjetClient(API_TOKEN, mockHttp) { Version = ApiVersion.V4 }; MailjetRequest request = new MailjetRequest { Resource = sms.SMS.Resource } .Filter(sms.SMS.FromTS, DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString()) .Filter(sms.SMS.ToTS, DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString()); MailjetResponse response = client.GetAsync(request).Result; Assert.IsTrue(response.IsSuccessStatusCode); Assert.IsTrue(JToken.DeepEquals(expectedData, response.GetData())); }
public List <MailJetSegment> GetSegments(string apiKey, string apiSecret) { try { MailjetClient client = new MailjetClient(apiKey, apiSecret); MailjetRequest request = new MailjetRequest { Resource = Contactfilter.Resource, } .Filter(Contact.ContactsList, "$ContactsListID"); MailjetResponse response = Task.Run(() => client.GetAsync(request)).Result; if (response.IsSuccessStatusCode) { List <MailJetSegment> segmentsList = JsonConvert.DeserializeObject <List <MailJetSegment> >(response.GetData().ToString()); return(segmentsList); } else { telemetria.Critical(string.Format("StatusCode: {0}\n", response.StatusCode) + " " + string.Format("ErrorInfo: {0}\n", response.GetErrorInfo()) + " " + string.Format("ErrorMessage: {0}\n", response.GetErrorMessage())); } } catch (Exception ex) { var messageException = telemetria.MakeMessageException(ex, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(null); }
public MailJetProfile GetMyProfile(MailjetClient client) { try { MailjetRequest request = new MailjetRequest { Resource = Myprofile.Resource, }; MailjetResponse response = Task.Run(() => client.GetAsync(request)).Result; if (response.IsSuccessStatusCode) { List <MailJetProfile> listSender = JsonConvert.DeserializeObject <List <MailJetProfile> >(response.GetData().ToString()); return(listSender.FirstOrDefault()); } else { telemetria.Critical(string.Format("StatusCode: {0}\n", response.StatusCode) + " " + string.Format("ErrorInfo: {0}\n", response.GetErrorInfo()) + " " + string.Format("ErrorMessage: {0}\n", response.GetErrorMessage())); } } catch (Exception ex) { var messageException = telemetria.MakeMessageException(ex, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(null); }
public void TestTooManyRequestsStatus() { var mockHttp = new MockHttpMessageHandler(); mockHttp.When("https://api.mailjet.com/v3/*") .Respond(((HttpStatusCode)429)); // Inject the handler into your application code IMailjetClient client = new MailjetClient(ApiKeyTest, ApiSecretTest, mockHttp); MailjetRequest request = new MailjetRequest { Resource = Apikey.Resource, }; MailjetResponse response = client.GetAsync(request).Result; Assert.AreEqual(429, response.StatusCode); Assert.AreEqual("Too many requests", response.GetErrorInfo()); }
public bool IsValidAsync(string apiKey, string apiSecret) { try { MailjetClient client = new MailjetClient(apiKey, apiSecret); MailjetRequest request = new MailjetRequest { Resource = Sender.Resource, }; MailjetResponse response = Task.Run(() => client.GetAsync(request)).Result; return(response.IsSuccessStatusCode); } catch (Exception ex) { var messageException = telemetria.MakeMessageException(ex, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(false); }
public async Task <int?> GetContactId(string contactEmail) { try { var request = new MailjetRequest { Resource = new ResourceInfo("contact/" + contactEmail), }; var response = await _clientV3.GetAsync(request); if (!response.IsSuccessStatusCode) { throw new MailjetApiClientException(response.FormatForLogs()); } var responseData = response.GetData(); return((int)responseData[0]["ID"]); } catch (Exception) { return(null); } }
static async Task RunAsync() { //MailjetClientHandler clientHandler = new MailjetClientHandler() //{ // Proxy = new DefaultProxy("http://127.0.0.1:8888"), // UseProxy = true, //}; //MailjetClient client = new MailjetClient(Environment.GetEnvironmentVariable("MJ_APIKEY_PUBLIC"), Environment.GetEnvironmentVariable("MJ_APIKEY_PRIVATE"), clientHandler) //{ // BaseAdress = "https://api.mailjet.com", // Version = ApiVersion.V3, //}; IMailjetClient client = new MailjetClient(Environment.GetEnvironmentVariable("MJ_APIKEY_PUBLIC"), Environment.GetEnvironmentVariable("MJ_APIKEY_PRIVATE")); MailjetRequest request = new MailjetRequest { Resource = Apikey.Resource, }; MailjetResponse response = await client.GetAsync(request); if (response.IsSuccessStatusCode) { Console.WriteLine(string.Format("Total: {0}, Count: {1}\n", response.GetTotal(), response.GetCount())); Console.WriteLine(response.GetData()); } else { Console.WriteLine(string.Format("StatusCode: {0}\n", response.StatusCode)); Console.WriteLine(string.Format("ErrorInfo: {0}\n", response.GetErrorInfo())); Console.WriteLine(string.Format("ErrorMessage: {0}\n", response.GetErrorMessage())); } Console.ReadLine(); }
public void TestGetAsync() { int expectedTotal = 1; int expectedCount = 1; var expectedData = new JArray { new JObject { { Apikey.APIKey, "ApiKeyTest" }, }, }; var mockHttp = new MockHttpMessageHandler(); string jsonResponse = GenerateJsonResponse(expectedTotal, expectedCount, expectedData); // Setup a respond for the user api (including a wildcard in the URL) mockHttp.When("https://api.mailjet.com/v3/*") .Respond(JsonMediaType, jsonResponse); // Respond with JSON // Inject the handler into your application code IMailjetClient client = new MailjetClient(ApiKeyTest, ApiSecretTest, mockHttp); MailjetRequest request = new MailjetRequest { Resource = Apikey.Resource, }; MailjetResponse response = client.GetAsync(request).Result; Assert.IsTrue(response.IsSuccessStatusCode); Assert.AreEqual(expectedTotal, response.GetTotal()); Assert.AreEqual(expectedCount, response.GetCount()); Assert.IsTrue(JToken.DeepEquals(expectedData, response.GetData())); }
private async Task AssertGetContact(long contactId) { // arrange MailjetRequest request = new MailjetRequest { Resource = Contact.Resource, ResourceId = ResourceId.Numeric(contactId) }; // act MailjetResponse response = await _client.GetAsync(request); // assert Assert.AreEqual(200, response.StatusCode); Assert.AreEqual(1, response.GetCount()); Assert.AreEqual(1, response.GetTotal()); var firstObject = response.GetData()[0]; Assert.AreEqual(true, firstObject.Value <bool>("IsExcludedFromCampaigns")); Assert.AreEqual(_contactName, firstObject.Value <string>("Name")); Assert.AreEqual(_contactEmail, firstObject.Value <string>("Email")); Assert.AreEqual(contactId, firstObject.Value <long>("ID")); }
private async Task <bool> AddUserToContactList(string email, string name) { var request = new MailjetRequest { Resource = Contact.Resource, ResourceId = ResourceId.Alphanumeric(email) }; var response = await _client.GetAsync(request); if (!response.IsSuccessStatusCode) { request = new MailjetRequest { Resource = Contact.Resource } .Property(Contact.Name, name) .Property(Contact.Email, email); response = await _client.PostAsync(request); if (response.IsSuccessStatusCode) { request = new MailjetRequest { Resource = Contact.Resource, ResourceId = ResourceId.Alphanumeric(email) }; response = await _client.GetAsync(request); } } if (response.IsSuccessStatusCode) { var contactId = response.GetData().First.Value <long>(Contact.ID); request = new MailjetRequest { Resource = Contactdata.Resource, ResourceId = ResourceId.Numeric(contactId) } .Property(Contactdata.Data, new JArray { new JObject { { "Name", "country" }, { "Value", CultureInfo.CurrentUICulture.Name } } }); response = await _client.PutAsync(request); if (response.IsSuccessStatusCode) { var contactListId = _mailSettings.Value.ContacListId.ContainsKey(CultureInfo.CurrentUICulture.Name) ? _mailSettings.Value.ContacListId[CultureInfo.CurrentUICulture.Name] : _mailSettings.Value.ContacListId["en-US"]; request = new MailjetRequest { Resource = ContactManagecontactslists.Resource, ResourceId = ResourceId.Numeric(contactId) } .Property(ContactManagecontactslists.ContactsLists, new JArray { new JObject { { "ListId", contactListId.ToString() }, { "Action", "addnoforce" } } }); response = await _client.PostAsync(request); if (response.IsSuccessStatusCode) { return(true); } else { _logger.LogError(response.GetErrorMessage()); } } else { _logger.LogError(response.GetErrorMessage()); } } else { _logger.LogError(response.GetErrorMessage()); } return(false); }