public void SendNotification(string title, string message, PushalotSettings settings) { var client = RestClientFactory.BuildClient(URL); var request = BuildRequest(); request.AddParameter("Source", "Radarr"); if (settings.Image) { request.AddParameter("Image", "https://raw.githubusercontent.com/Radarr/Radarr/develop/Logo/128.png"); } request.AddParameter("Title", title); request.AddParameter("Body", message); request.AddParameter("AuthorizationToken", settings.AuthToken); if ((PushalotPriority)settings.Priority == PushalotPriority.Important) { request.AddParameter("IsImportant", true); } if ((PushalotPriority)settings.Priority == PushalotPriority.Silent) { request.AddParameter("IsSilent", true); } client.ExecuteAndValidate(request); }
public ValidationFailure Test(PushalotSettings settings) { try { const string title = "Test Notification"; const string body = "This is a test message from NzbDrone"; SendNotification(title, body, settings); } catch (RestException ex) { if (ex.Response.StatusCode == HttpStatusCode.Unauthorized) { _logger.ErrorException("Authentication Token is invalid: " + ex.Message, ex); return(new ValidationFailure("AuthToken", "Authentication Token is invalid")); } if (ex.Response.StatusCode == HttpStatusCode.NotAcceptable) { _logger.ErrorException("Message limit reached: " + ex.Message, ex); return(new ValidationFailure("AuthToken", "Message limit reached")); } if (ex.Response.StatusCode == HttpStatusCode.Gone) { _logger.ErrorException("Authorization Token is no longer valid: " + ex.Message, ex); return(new ValidationFailure("AuthToken", "Authorization Token is no longer valid, please use a new one.")); } var response = Json.Deserialize <PushalotResponse>(ex.Response.Content); _logger.ErrorException("Unable to send test message: " + ex.Message, ex); return(new ValidationFailure("AuthToken", response.Description)); } catch (Exception ex) { _logger.ErrorException("Unable to send test message: " + ex.Message, ex); return(new ValidationFailure("", "Unable to send test message")); } return(null); }