public OmdbModule() { var omdb = new Omdb.Integration.OmdbQuery(); Post["/imdb"] = parameters => { var slackCommand = new Model.SlackCommandRequest(); slackCommand = this.Bind <Model.SlackCommandRequest>(); var searchTerm = slackCommand.text.Trim(); var isListSearch = searchTerm.StartsWith("?"); var response = new Model.SlackWebhookResponse(); if (isListSearch) { } else { var singleSearchResultCmd = new Commands.SearchSingleResultCommand(); response = singleSearchResultCmd.Execute(searchTerm, slackCommand.channel_name, slackCommand.user_name); } var slackResponder = new Integration.SlackWebhookResponder(); slackResponder.Send(response); var jsonResponse = JsonConvert.SerializeObject(response); return(jsonResponse); }; Get["/imdb/{imdbid}.jpg"] = parameters => { var client = new RestSharp.RestClient("http://img.omdbapi.com"); var request = new RestSharp.RestRequest(RestSharp.Method.GET).AddQueryParameter("apikey", "cce8fe13").AddQueryParameter("i", parameters["imdbid"]); var responseData = client.DownloadData(request); var r = new Response(); r.Contents = s => { using (var writer = new BinaryWriter(s)) { writer.Write(responseData); }; }; r.ContentType = "image/jpeg"; return(r); }; }
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); }