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 SendPush(string deviceToken, string title, string body, int badge) { var keysFilePath = "private/appleKeys.json"; var uri = ""; var p12FilePath = ""; if (_env.IsDevelopment()) { uri = "https://api.sandbox.push.apple.com"; p12FilePath = "/volume1/AcaMate/PROJECT/Application/Back/private/AM_Push_Sandbox.p12"; // "private/AM_Push_Sandbox.p12"; } else { uri = "https://api.push.apple.com"; p12FilePath = "/volume1/AcaMate/PROJECT/Application/Back/private/AM_Push.p12"; // "private/AM_Push.p12"; } var apnsTopic = "me.myds.ipstien.acamate.AcaMate"; Console.WriteLine($"{uri} || {p12FilePath}"); var pushService = new PushServiceWithP12(keysFilePath, p12FilePath, apnsTopic); // 푸시 알림 전송 await pushService.SendPushAsync(uri, deviceToken, title, body, badge); return Ok("Push notification sent."); } }