public async Task <ListSuppressionResponse> Retrieve(string email) { var request = new Request { Url = $"/api/{client.Version}/suppression-list/{HttpUtility.UrlEncode(email)}", Method = "GET" }; var response = await requestSender.Send(request); if (new[] { HttpStatusCode.OK, HttpStatusCode.NotFound }.Contains(response.StatusCode) == false) { throw new ResponseException(response); } dynamic results = response.StatusCode == HttpStatusCode.OK ? Jsonification.DeserializeObject <dynamic>(response.Content).results : null; return(new ListSuppressionResponse { ReasonPhrase = response.ReasonPhrase, StatusCode = response.StatusCode, Content = response.Content, Suppressions = ConvertResultsToAListOfSuppressions(results) }); }
public async Task <UpdateSubaccountResponse> Update(SubaccountUpdate subaccount) { var request = new Request { Url = $"api/{client.Version}/subaccounts/{subaccount.Id}", Method = "PUT JSON", Data = new { name = subaccount.Name, status = subaccount.Status.ToString().ToLowerInvariant() } }; var response = await requestSender.Send(request); if (response.StatusCode != HttpStatusCode.OK) { throw new ResponseException(response); } var results = Jsonification.DeserializeObject <dynamic>(response.Content).results; return(new UpdateSubaccountResponse { ReasonPhrase = response.ReasonPhrase, StatusCode = response.StatusCode, Content = response.Content }); }
public async Task <ListSuppressionResponse> List(object query = null) { if (query == null) { query = new {} } ; var request = new Request { Url = $"/api/{client.Version}/suppression-list", Method = "GET", Data = query }; var response = await requestSender.Send(request); if (response.StatusCode != HttpStatusCode.OK) { throw new ResponseException(response); } var results = Jsonification.DeserializeObject <dynamic>(response.Content).results; return(new ListSuppressionResponse { ReasonPhrase = response.ReasonPhrase, StatusCode = response.StatusCode, Content = response.Content, Suppressions = ConvertResultsToAListOfSuppressions(results) }); }
public async Task <ListSuppressionResponse> List(string url, SuppressionsQuery supppressionsQuery) { var request = new Request { Url = url, Method = "GET", Data = (object)supppressionsQuery ?? new { } }; var response = await requestSender.Send(request); if (response.StatusCode != HttpStatusCode.OK) { throw new ResponseException(response); } var content = Jsonification.DeserializeObject <dynamic>(response.Content); return(new ListSuppressionResponse { ReasonPhrase = response.ReasonPhrase, StatusCode = response.StatusCode, Content = response.Content, Suppressions = ConvertResultsToAListOfSuppressions(content.results), TotalCount = content.total_count, Links = ConvertToLinks(content.links) }); }
public async Task <SendTransmissionResponse> Send(Transmission transmission) { var request = new Request { Url = $"api/{client.Version}/transmissions", Method = "POST", Data = dataMapper.ToDictionary(transmission) }; var response = await requestSender.Send(request); if (response.StatusCode != HttpStatusCode.OK) { throw new ResponseException(response); } var results = Jsonification.DeserializeObject <JsonSendResponse>(response.Content).Results; return(new SendTransmissionResponse() { Id = results.Id, ReasonPhrase = response.ReasonPhrase, StatusCode = response.StatusCode, Content = response.Content, TotalAcceptedRecipients = results.TotalAcceptedRecipients, TotalRejectedRecipients = results.TotalRejectedRecipients, }); }
public async Task <VerifySendingDomainResponse> Verify(VerifySendingDomain verifySendingDomain) { var request = new Request { Url = $"/api/{client.Version}/sending-domains/{verifySendingDomain.Domain}/verify", Method = "POST", Data = dataMapper.ToDictionary(verifySendingDomain) }; var response = await requestSender.Send(request); if (response.StatusCode != HttpStatusCode.OK) { throw new ResponseException(response); } var result = Jsonification.DeserializeObject <dynamic>(response.Content).results; return(new VerifySendingDomainResponse { ReasonPhrase = response.ReasonPhrase, StatusCode = response.StatusCode, Content = response.Content, Status = VerifySendingDomainStatus.ConvertToVerifySendingDomainStatus(result) }); }
public async Task <UpdateSendingDomainResponse> Update(SendingDomain sendingDomain) { var request = new Request { Url = $"/api/{client.Version}/sending-domains/{sendingDomain.Domain}", Method = "PUT", Data = dataMapper.ToDictionary(sendingDomain) }; var response = await requestSender.Send(request); if (response.StatusCode != HttpStatusCode.OK) { throw new ResponseException(response); } var result = Jsonification.DeserializeObject <dynamic>(response.Content).results; return(result != null ? new UpdateSendingDomainResponse { ReasonPhrase = response.ReasonPhrase, StatusCode = response.StatusCode, Content = response.Content, Domain = result.domain, TrackingDomain = result.tracking_domain, Dkim = Dkim.ConvertToDkim(result.dkim), } : null); }
public async Task <CreateSubaccountResponse> Create(SubaccountCreate subaccount) { var request = new Request { Url = $"api/{client.Version}/subaccounts", Method = "POST", Data = new { name = subaccount.Name, key_label = subaccount.KeyLabel, key_grants = subaccount.KeyGrants } }; var response = await requestSender.Send(request); if (response.StatusCode != HttpStatusCode.OK) { throw new ResponseException(response); } var results = Jsonification.DeserializeObject <dynamic>(response.Content).results; return(new CreateSubaccountResponse { ReasonPhrase = response.ReasonPhrase, StatusCode = response.StatusCode, Content = response.Content, Key = results.key, Label = results.label, ShortKey = results.short_key, SubaccountId = results.subaccount_id }); }
private static IEnumerable <MessageEvent> ConvertResultsToAListOfMessageEvents(dynamic results) { var messageEvents = new List <MessageEvent>(); if (results == null) { return(messageEvents); } foreach (var result in results) { var metadata = Jsonification.DeserializeObject <Dictionary <string, string> >( Jsonification.SerializeObject(result.rcpt_meta)); var tags = Jsonification.DeserializeObject <List <string> >( Jsonification.SerializeObject(result.rcpt_tags)); messageEvents.Add(new MessageEvent { Type = result.type, BounceClass = result.bounce_class, CampaignId = result.campaign_id, CustomerId = result.customer_id, DeliveryMethod = result.delv_method, DeviceToken = result.device_token, ErrorCode = result.error_code, IpAddress = result.ip_address, MessageId = result.message_id, MessageFrom = result.msg_from, MessageSize = result.msg_size, NumberOfRetries = result.num_retries, RecipientTo = result.rcpt_to, RecipientType = result.rcpt_type, RawReason = result.raw_reason, Reason = result.reason, RoutingDomain = result.routing_domain, Subject = result.subject, TemplateId = result.template_id, TemplateVersion = result.template_version, Timestamp = result.timestamp, TransmissionId = result.transmission_id, EventId = result.event_id, FriendlyFrom = result.friendly_from, IpPool = result.ip_pool, QueueTime = result.queue_time, RawRecipientTo = result.raw_rcpt_to, SendingIp = result.sending_ip, TDate = result.tdate, Transactional = result.transactional, RemoteAddress = result.remote_addr, Metadata = metadata, TargetLinkUrl = result.target_link_url, Tags = tags }); } return(messageEvents); }
public static ListSendingDomainResponse CreateFromResponse(Response response) { var result = new ListSendingDomainResponse(); LeftRight.SetValuesToMatch(result, response); var results = Jsonification.DeserializeObject <dynamic>(response.Content).results; result.SendingDomains = BuildTheSendingDomains(results); return(result); }
private async Task <GetMetricsResourceResponse> GetMetricsResource(string resourceName, object query) { var response = await GetApiResponse(resourceName, query); dynamic content = Jsonification.DeserializeObject <dynamic>(response.Content); var result = new GetMetricsResourceResponse(response); result.Results = ConvertToStrings(content.results, resourceName); return(result); }
public static RetrieveRelayWebhookResponse CreateFromResponse(Response response) { var result = new RetrieveRelayWebhookResponse(); LeftRight.SetValuesToMatch(result, response); var results = Jsonification.DeserializeObject <dynamic>(response.Content).results; result.RelayWebhook = ListRelayWebhookResponse.ConvertToARelayWebhook(results); return(result); }
public static InboundDomainResponse CreateFromResponse(Response response) { var result = new InboundDomainResponse(); LeftRight.SetValuesToMatch(result, response); var results = Jsonification.DeserializeObject <dynamic>(response.Content).results; result.InboundDomain = ListInboundDomainResponse.ConvertToAInboundDomain(results); return(result); }
private async Task <GetMetricsResponse> GetMetrics(string relUrl, object query) { var response = await GetApiResponse(relUrl, query); dynamic content = Jsonification.DeserializeObject <dynamic>(response.Content); var result = new GetMetricsResponse(response); result.Results = ConvertToDictionaries(content.results); return(result); }
private static IEnumerable <RelayWebhook> BuildTheRelayWebhooksFrom(Response response) { var results = Jsonification.DeserializeObject <dynamic>(response.Content).results; var relayWebhooks = new List <RelayWebhook>(); foreach (var r in results) { relayWebhooks.Add(ConvertToARelayWebhook(r)); } return(relayWebhooks); }
private static IEnumerable <InboundDomain> BuildTheInboundDomainsFrom(Response response) { dynamic results = Jsonification.DeserializeObject <dynamic>(response.Content).results; var inboundDomains = new List <InboundDomain>(); foreach (var r in results) { inboundDomains.Add(ConvertToAInboundDomain(r)); } return(inboundDomains); }
public static ListWebhookResponse CreateFromResponse(Response response) { var result = new ListWebhookResponse(); LeftRight.SetValuesToMatch(result, response); var results = Jsonification.DeserializeObject <dynamic>(result.Content).results; var webhooks = new List <Webhook>(); foreach (var r in results) { webhooks.Add(ConvertToAWebhook(r)); } result.Webhooks = webhooks; return(result); }
public static ListSubaccountResponse CreateFromResponse(Response response) { var result = new ListSubaccountResponse(); LeftRight.SetValuesToMatch(result, response); var results = Jsonification.DeserializeObject <dynamic>(response.Content).results; var subaccounts = new List <Subaccount>(); foreach (var r in results) { subaccounts.Add(ConvertToSubaccount(r)); } result.Subaccounts = subaccounts; return(result); }
public async Task <RetrieveTransmissionResponse> Retrieve(string transmissionId) { var request = new Request { Url = $"api/{client.Version}/transmissions/" + transmissionId, Method = "GET", }; var response = await requestSender.Send(request); if (new[] { HttpStatusCode.OK, HttpStatusCode.NotFound }.Contains(response.StatusCode) == false) { throw new ResponseException(response); } var transmissionResponse = new RetrieveTransmissionResponse() { ReasonPhrase = response.ReasonPhrase, StatusCode = response.StatusCode, Content = response.Content, }; try { var results = Jsonification.DeserializeObject <dynamic>(response.Content).results; if (results.transmission == null) { return(transmissionResponse); } transmissionResponse.Id = results.transmission.id; transmissionResponse.Description = results.transmission.description; transmissionResponse.GenerationEndTime = results.transmission.generation_end_time; transmissionResponse.RecipientListTotalChunks = results.transmission.rcpt_list_total_chunks ?? 0; transmissionResponse.RecipientListTotalSize = results.transmission.rcpt_list_chunk_size ?? 0; transmissionResponse.NumberRecipients = results.transmission.num_rcpts ?? 0; transmissionResponse.NumberGenerated = results.transmission.num_generated ?? 0; } catch { // ignored } return(transmissionResponse); }
public async Task <GetSendingDomainResponse> Retrieve(string domain) { var request = new Request { Url = $"/api/{client.Version}/sending-domains/{domain}", Method = "GET", }; var response = await requestSender.Send(request); if (response.StatusCode != HttpStatusCode.OK) { throw new ResponseException(response); } var result = Jsonification.DeserializeObject <dynamic>(response.Content).results; return(new GetSendingDomainResponse { ReasonPhrase = response.ReasonPhrase, StatusCode = response.StatusCode, Content = response.Content, SendingDomain = SendingDomain.ConvertToSendingDomain(result) }); }
public async Task <ListMessageEventsResponse> List(object messageEventsQuery) { if (messageEventsQuery == null) { messageEventsQuery = new { } } ; var request = new Request { Url = $"/api/{client.Version}/message-events", Method = "GET", Data = messageEventsQuery }; var response = await requestSender.Send(request); if (response.StatusCode != HttpStatusCode.OK) { throw new ResponseException(response); } dynamic content = Jsonification.DeserializeObject <dynamic>(response.Content); var listMessageEventsResponse = new ListMessageEventsResponse { ReasonPhrase = response.ReasonPhrase, StatusCode = response.StatusCode, Content = response.Content, MessageEvents = ConvertResultsToAListOfMessageEvents(content.results), TotalCount = content.total_count, Links = ConvertToLinks(content.links) }; return(listMessageEventsResponse); }
public string ToJson() { return(Jsonification.SerializeObject(this)); }
private static string SerializeObject(object data) { return(Jsonification.SerializeObject(data)); }