Skip to content

Latest commit

 

History

History
71 lines (58 loc) · 2.34 KB

File metadata and controls

71 lines (58 loc) · 2.34 KB

Transmitly.Microsoft.AspnetCore.Mvc

A Transmitly utility package for handling registration and controllers for channel provider delivery reports.

Getting started

To use install the NuGet package:

dotnet add package Transmitly.Microsoft.AspnetCore.Mvc

Then add the model binders using AddChannelProviderDeliveryReportModelBinders():

using Transmitly;
...
 public static void Main(string[] args)
{
	var builder = WebApplication.CreateBuilder(args);
	builder.Services
	.AddControllers(options =>
	{
		//Adds the necessary model binders to handle channel provider specific webhooks (Twilio, Infobip, etc)
		//and convert them to delivery reports
		options.AddTransmitlyDeliveryReportModelBinders();
	})
	.AddTransmitly(tly => {...});
}

Using Default Delivery Report Controller

Inheriting the ChannelProviderDeliveryReportController will setup an POST route named, HandleDeliveryReport (example: https://yourapp.com/Communications/HandleDeliveryReport) that will automatically trigger your registered delivery report handlers for the provided ICommunicationsClient.

The HandleDeliveryReport method can be overridden. Allowing you to customize behaviors and set route specifics.

MyDeliveryReportsController.cs

using System;
using System.Web.Mvc;
using Transmitly;
using Transmitly.Delivery;

namespace Transmitly.Aspnet.Mvc.Examples
{
	[AllowAnonymous]
	public class CommunicationsController : ChannelProviderDeliveryReportController
	{
		public CommunicationsController(ICommunicationsClient communicationsClient) : base(communicationsClient)
		{
		}
	}
}

Or if you prefer to implement it yourself

[HttpPost("channel/provider/update", Name = "DeliveryReport")]
public IActionResult ChannelProviderDeliveryReport(ChannelProviderDeliveryReportRequest providerReport)
{
	_communicationsClient.DispatchAsync(providerReport.DeliveryReports);
	return Ok();
}
  • See the Transmitly project for more details on how use and configure the library.

Copyright © Code Impressions, LLC. This open-source project is sponsored and maintained by Code Impressions and is licensed under the Apache License, Version 2.0.