AcaMate_API/Program/V1/Controllers/PushController.cs
seonkyu.kim 6f9880b9d3 [] 11차 푸시 확인 - 로컬에서 수신 확인 완료
Signed-off-by: seonkyu.kim <sean.kk@daum.net>
2024-11-30 17:34:14 +09:00

61 lines
1.8 KiB
C#

using AcaMate.V1.Models;
using Microsoft.AspNetCore.Mvc;
using AcaMate.V1.Services;
namespace AcaMate.V1.Controllers;
[ApiController]
[Route("/api/v1/in/push")]
[ApiExplorerSettings(GroupName = "공통")]
public class PushController : ControllerBase
{
private readonly IWebHostEnvironment _env;
public PushController(IWebHostEnvironment env)
{
_env = env;
}
[HttpGet()]
[CustomOperation("푸시 확인", "저장된 양식을 확인 할 수 있다..", "푸시")]
public IActionResult GetPushData()
{
return Ok("SEND");
}
[HttpPost("send")]
[CustomOperation("푸시전송", "저장된 양식으로, 사용자에게 푸시를 전송한다.", "푸시")]
// public async Task<IActionResult> SendPush(string deviceToken, string title, string body, int badge)
public async Task<IActionResult> SendPush(string deviceToken, [FromBody] Payload payload)
{
string p12Path = "";
string p12PWPath = "private/appleKeys.json";
string apnsTopic = "me.myds.ipstein.acamate.AcaMate";
string uri = "";
if (_env.IsDevelopment())
{
uri = "https://api.sandbox.push.apple.com/";
// p12Path = "/src/private/AM_Push_Sandbox.p12";
p12Path = "private/AM_Push_Sandbox.p12";
}
else
{
uri = "https://api.push.apple.com/";
// p12Path = "/src/private/AM_Push.p12";
p12Path = "private/AM_Push.p12";
}
// ApnsPushService 인스턴스 생성
var pushService = new ApnsPushService(uri, p12Path, p12PWPath, apnsTopic);
// 푸시 알림 전송
await pushService.SendPushNotificationAsync(deviceToken, payload);
return Ok("done");
}
}