make endpoints more resilient to missing accept header
This commit is contained in:
parent
4b9f734687
commit
5454d176dd
1 changed files with 33 additions and 21 deletions
|
@ -39,8 +39,12 @@ namespace BirdsiteLive.Controllers
|
||||||
[Route("/users")]
|
[Route("/users")]
|
||||||
public IActionResult Index()
|
public IActionResult Index()
|
||||||
{
|
{
|
||||||
var r = Request.Headers["Accept"].First();
|
var acceptHeaders = Request.Headers["Accept"];
|
||||||
if (r.Contains("application/activity+json")) return NotFound();
|
if (acceptHeaders.Any())
|
||||||
|
{
|
||||||
|
var r = acceptHeaders.First();
|
||||||
|
if (r.Contains("application/activity+json")) return NotFound();
|
||||||
|
}
|
||||||
return View("UserNotFound");
|
return View("UserNotFound");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,16 +52,20 @@ namespace BirdsiteLive.Controllers
|
||||||
[Route("/users/{id}")]
|
[Route("/users/{id}")]
|
||||||
public IActionResult Index(string id)
|
public IActionResult Index(string id)
|
||||||
{
|
{
|
||||||
id = id.Trim(new[] {' ', '@'}).ToLowerInvariant();
|
id = id.Trim(new[] { ' ', '@' }).ToLowerInvariant();
|
||||||
var user = _twitterService.GetUser(id);
|
var user = _twitterService.GetUser(id);
|
||||||
|
|
||||||
var r = Request.Headers["Accept"].First();
|
var acceptHeaders = Request.Headers["Accept"];
|
||||||
if (r.Contains("application/activity+json"))
|
if (acceptHeaders.Any())
|
||||||
{
|
{
|
||||||
if (user == null) return NotFound();
|
var r = acceptHeaders.First();
|
||||||
var apUser = _userService.GetUser(user);
|
if (r.Contains("application/activity+json"))
|
||||||
var jsonApUser = JsonConvert.SerializeObject(apUser);
|
{
|
||||||
return Content(jsonApUser, "application/activity+json; charset=utf-8");
|
if (user == null) return NotFound();
|
||||||
|
var apUser = _userService.GetUser(user);
|
||||||
|
var jsonApUser = JsonConvert.SerializeObject(apUser);
|
||||||
|
return Content(jsonApUser, "application/activity+json; charset=utf-8");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user == null) return View("UserNotFound");
|
if (user == null) return View("UserNotFound");
|
||||||
|
@ -79,22 +87,26 @@ namespace BirdsiteLive.Controllers
|
||||||
[Route("/users/{id}/statuses/{statusId}")]
|
[Route("/users/{id}/statuses/{statusId}")]
|
||||||
public IActionResult Tweet(string id, string statusId)
|
public IActionResult Tweet(string id, string statusId)
|
||||||
{
|
{
|
||||||
var r = Request.Headers["Accept"].First();
|
var acceptHeaders = Request.Headers["Accept"];
|
||||||
if (r.Contains("application/activity+json"))
|
if (acceptHeaders.Any())
|
||||||
{
|
{
|
||||||
if (!long.TryParse(statusId, out var parsedStatusId))
|
var r = acceptHeaders.First();
|
||||||
return NotFound();
|
if (r.Contains("application/activity+json"))
|
||||||
|
{
|
||||||
|
if (!long.TryParse(statusId, out var parsedStatusId))
|
||||||
|
return NotFound();
|
||||||
|
|
||||||
var tweet = _twitterService.GetTweet(parsedStatusId);
|
var tweet = _twitterService.GetTweet(parsedStatusId);
|
||||||
if (tweet == null)
|
if (tweet == null)
|
||||||
return NotFound();
|
return NotFound();
|
||||||
|
|
||||||
//var user = _twitterService.GetUser(id);
|
//var user = _twitterService.GetUser(id);
|
||||||
//if (user == null) return NotFound();
|
//if (user == null) return NotFound();
|
||||||
|
|
||||||
var status = _statusService.GetStatus(id, tweet);
|
var status = _statusService.GetStatus(id, tweet);
|
||||||
var jsonApUser = JsonConvert.SerializeObject(status);
|
var jsonApUser = JsonConvert.SerializeObject(status);
|
||||||
return Content(jsonApUser, "application/activity+json; charset=utf-8");
|
return Content(jsonApUser, "application/activity+json; charset=utf-8");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return View("Tweet", statusId);
|
return View("Tweet", statusId);
|
||||||
|
|
Loading…
Add table
Reference in a new issue