updated services

main
Young 6 months ago
parent 795686bd18
commit 519e779228

@ -1,14 +1,22 @@
using Asp.Versioning; using Asp.Versioning;
using BackendTutorial.Events; using BackendTutorial.Events;
using Infrastructure; using Infrastructure;
using Infrastructure.Attributes;
using Infrastructure.EventBus; using Infrastructure.EventBus;
using Infrastructure.HttpUserContext;
using Infrastructure.Security;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace BackendTutorial.Controllers.V1; namespace BackendTutorial.Controllers.V1;
[ApiVersion("1.0")] [ApiVersion("1.0")]
[Route("tutorial/{version:apiVersion}")] [Route("tutorial/{version:apiVersion}")]
public class TutorialController(ILogger<TutorialController> logger, IEventBus eventBus) : DefaultControllerBase public class TutorialController(
ILogger<TutorialController> logger,
IEventBus eventBus,
IUserContext<long> userContext
) : DefaultControllerBase
{ {
[HttpGet("hello")] [HttpGet("hello")]
public async Task<MessageData<string>> HelloAsync() public async Task<MessageData<string>> HelloAsync()
@ -17,11 +25,34 @@ public class TutorialController(ILogger<TutorialController> logger, IEventBus ev
return await Task.Run(() => Succeed<string>("hello world")); return await Task.Run(() => Succeed<string>("hello world"));
} }
[HttpPost("send")] [HttpPost("send"), Idempotency(nameof(message))]
public async Task<MessageData<string>> SendAsync(string message) public async Task<MessageData<string>> SendAsync(string message)
{ {
eventBus.Publish(new HelloWorldEvent(message)); eventBus.Publish(new HelloWorldEvent(message));
await Task.CompletedTask; await Task.CompletedTask;
return Succeed<string>("sent message"); return Succeed<string>("sent message");
} }
[HttpPost("token")]
public async Task<MessageData<JwtTokenInfo>> GetJwtTokenInfoAsync()
{
//mock
userContext.Id = 89757L;
userContext.Username = "test";
userContext.Name = "test";
userContext.Email = "test@test.com";
userContext.RoleNames = ["consumer"];
userContext.RoleIds = ["89757"];
var jwtInfo = userContext.GenerateTokenInfo();
await Task.CompletedTask;
return Succeed(jwtInfo);
}
[Authorize(Policy = "authorize")]
[HttpGet("authorize")]
public async Task<MessageData> AuthorizeAsync()
{
await Task.CompletedTask;
return Succeed();
}
} }
Loading…
Cancel
Save