/// <summary> /// Sends a message to the Pushover service /// </summary> /// <param name="title"></param> /// <param name="message"></param> /// <param name="priority"></param> /// <param name="sound"></param> /// <param name="callback"></param> void Pushover(string title, string message, string priority = "high", string sound = "gamelan", Action <bool> callback = null) { switch (priority.ToLower()) { case "high": priority = "1"; break; case "low": priority = "0"; break; case "quiet": priority = "-1"; break; } var payload = new PushoverMessage { title = title, message = message, priority = priority, sound = sound }; if (!ErrorHandling(payload)) { callback?.Invoke(false); return; } WebRequest(pushoverUrl, payload.QueryString(), callback); }
bool ErrorHandling(PushoverMessage payload, Action <bool> callback = null) { if (string.IsNullOrEmpty(pushoverAppKey) || pushoverAppKey.Length != 30) { LogWarning("Pushover application key not set! Please set it and try again"); return(false); } if (string.IsNullOrEmpty(pushoverUserKey) || pushoverUserKey.Length != 30) { LogWarning("Pushover user key not set! Please set it and try again"); return(false); } if (string.IsNullOrEmpty(payload.title)) { LogWarning("Title not given! Please enter one and try again"); return(false); } if (string.IsNullOrEmpty(payload.message)) { LogWarning("Message not given! Please enter one and try again"); return(false); } return(true); }
public void Notify(Notification notification) { var config = _keyValueStore.Get <PushoverConfig>("pushover.config"); if (config == null) { _logger.Warn("Pushover not configured."); return; } var message = new PushoverMessage(config.AppKey, config.UserKey, notification.Message) { Title = notification.Title }; _pushoverClient.Send(message); }
public async Task PushWithDefaultKey_ReturnsSuccessful() { // Arrange string title = "Test title"; string text = "This is a test push notification message"; // Act Pushover pclient = new Pushover(TEST_APP_KEY, TEST_USER_KEY); var message = new PushoverMessage() { Title = title, Text = text }; PushoverResponse response = await pclient.SendPushAsync(message); // Assert Assert.IsNotNull(response); Assert.AreEqual(1, response.Status); }
public async Task PushWithNoKey_ReturnsError() { // Arrange string title = "Test title"; string text = "This is a test push notification message"; // Act Pushover pclient = new Pushover(TEST_APP_KEY); var message = new PushoverMessage() { Title = title, Text = text }; PushoverResponse response = await pclient.SendPushAsync(message); // Assert - above code should error before this Assert.Fail(); }
static void Main(string[] args) { PushoverClient api = new PushoverClient("token"); PushoverMessage message = new PushoverMessage() { Title = "title", Message = "message", Priority = Priority.High, Sound = "magic", Url = "https://www.github.com", UrlTitle = "Github", }; bool result = api.Send("token", message); Console.Read(); }
public void PushWithValidParms_ReturnsSuccessful() { // Arrange string title = "Test title"; string text = "This is a test push notification message"; // Act Pushover pclient = new Pushover(TEST_APP_KEY); var message = new PushoverMessage() { Title = title, Text = text }; message.Recipients.Add(TEST_USER_KEY); PushoverResponse response = pclient.SendPush(message); // Assert Assert.IsNotNull(response); Assert.AreEqual(1, response.Status); }
public IActionResult Post([FromBody] PushoverMessage message) { if (message == null) { return(BadRequest()); } var parameters = new NameValueCollection { { "token", message.AppToken }, { "user", message.UserKey }, { "message", message.TextMessage } }; using (var client = new WebClient()) { client.UploadValues("https://api.pushover.net/1/messages.json", parameters); } return(Ok(message)); }
public void TestConfig(PushoverConfig config) { var message = new PushoverMessage(config.AppKey, config.UserKey, "Test notification from Hadouken"); _pushoverClient.Send(message); }