public void WebhookResponseNoResults() { var searchTerm = "WebhookResponse No Result"; var channel = "WebhookTestChannel"; var userName = "******"; var responseText = string.Format("Psssst @{0} I couldn't find a title named \"{1}\".", userName, searchTerm); var response = new Model.SlackWebhookResponse().EmptyResultResponse(searchTerm, channel, userName); var hasCorrectResponse = response.payload.text == responseText; Assert.IsTrue(hasCorrectResponse); }
public void WebhookResponseWithResultAttachments() { var searchTerm = "The 100"; var userName = "******"; var responseText = string.Format("Psssst @{0} I couldn't find a title named \"{1}\".", userName, searchTerm); var omdbSearch = new OmdbQuery(); var searchResult = omdbSearch.SearchSingleResult(searchTerm); var imdbId = searchResult.imdbId; var response = new Model.SlackWebhookResponse().FromOmdbTitleAsAttachment(searchResult); var hasImdbId = response.payload.attachments[0].pretext.Contains(imdbId); Assert.IsTrue(hasImdbId); }
public HttpStatusCode Send(Model.SlackWebhookResponse webhookResponse) { var url = "https://hooks.slack.com/"; var client = new RestClient(url); var postRequest = new RestRequest(WEBHOOKID, Method.POST); var jsonBody = JsonConvert.SerializeObject(webhookResponse.payload); postRequest.AddParameter("application/json", jsonBody, ParameterType.RequestBody); IRestResponse r = client.Execute(postRequest); return(r.StatusCode); }
public Model.SlackWebhookResponse Execute(string searchTerm, string channel, string userName) { var omdb = new Omdb.Integration.OmdbQuery(); var response = new Model.SlackWebhookResponse(); var results = omdb.Search(searchTerm); var foundResult = results.Search.Count > 0; if (foundResult) { response = new Model.SlackWebhookResponse().FromOmdbSearchResult(results); response.payload.channel = "#" + channel; } else { var searchResults = omdb.Search(searchTerm); response = new Model.SlackWebhookResponse().EmptyResultResponse(searchTerm, channel, userName); } return(response); }
public Model.SlackWebhookResponse Execute(string searchTerm, string channel, string userName) { var omdb = new Omdb.Integration.OmdbQuery(); var response = new Model.SlackWebhookResponse(); var result = omdb.SearchSingleResult(searchTerm); var foundResult = string.IsNullOrEmpty(result.Title) ? false : true; if (foundResult) { response = new Model.SlackWebhookResponse().FromOmdbTitle(result); response.payload.channel = "#" + channel; } else { var searchResults = omdb.Search(searchTerm); response = new Model.SlackWebhookResponse().EmptyResultResponse(searchTerm, channel, userName); } return(response); }