Esempio n. 1
0
        async Task ProcessWebApiRequest(HttpListenerContext context, WebApiMethod method)
        {
            context.Response.ContentType = "text/json";
            context.Response.StatusCode  = (int)HttpStatusCode.OK;

            HandlerTask handlerTask;

            switch (method)
            {
            case WebApiMethod.GetConfigForm:
                handlerTask = HandleConfigForm;
                break;

            case WebApiMethod.ConfigureIndexer:
                handlerTask = HandleConfigureIndexer;
                break;

            case WebApiMethod.GetIndexers:
                handlerTask = HandleGetIndexers;
                break;

            case WebApiMethod.TestIndexer:
                handlerTask = HandleTestIndexer;
                break;

            case WebApiMethod.DeleteIndexer:
                handlerTask = HandleDeleteIndexer;
                break;

            case WebApiMethod.GetSonarrConfig:
                handlerTask = HandleGetSonarrConfig;
                break;

            case WebApiMethod.ApplySonarrConfig:
                handlerTask = HandleApplySonarrConfig;
                break;

            case WebApiMethod.TestSonarr:
                handlerTask = HandleTestSonarr;
                break;

            default:
                handlerTask = HandleInvalidApiMethod;
                break;
            }
            JToken jsonReply = await handlerTask(context);

            await ReplyWithJson(context, jsonReply, method.ToString());
        }
Esempio n. 2
0
        protected async Task <string> WebApi(WebApiMethod method, string servicePath, Object content = null)
        {
            HttpResponseMessage response = null;

            using (HttpClient client = new HttpClient())
            {
                client.BaseAddress = new Uri(System.Configuration.ConfigurationManager.AppSettings["CoreURL"]);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                client.DefaultRequestHeaders.Add("Authorization", BasicAuthString());

                switch (method)
                {
                case WebApiMethod.Get:
                    response = await client.GetAsync(servicePath).ConfigureAwait(false);

                    break;

                case WebApiMethod.Post:
                    response = await client.PostAsJsonAsync(servicePath, content).ConfigureAwait(false);

                    break;

                case WebApiMethod.Put:
                    response = await client.PutAsJsonAsync(servicePath, content).ConfigureAwait(false);

                    break;

                case WebApiMethod.Delete:
                    response = await client.DeleteAsync(servicePath).ConfigureAwait(false);

                    break;
                }
            }

            if (response.StatusCode == System.Net.HttpStatusCode.OK ||
                response.StatusCode == System.Net.HttpStatusCode.NoContent ||
                response.StatusCode == System.Net.HttpStatusCode.Created)
            {
                return(response.Content.ReadAsStringAsync().Result);
            }
            else
            {
                throw new Exception("API call failed. " + response.StatusCode + " " + response.ReasonPhrase);
            }
        }
Esempio n. 3
0
        async Task ProcessWebApiRequest(HttpListenerContext context, WebApiMethod method)
        {
            context.Response.ContentType = "text/json";
            context.Response.StatusCode = (int)HttpStatusCode.OK;

            HandlerTask handlerTask;

            switch (method)
            {
                case WebApiMethod.GetConfigForm:
                    handlerTask = HandleConfigForm;
                    break;
                case WebApiMethod.ConfigureIndexer:
                    handlerTask = HandleConfigureIndexer;
                    break;
                case WebApiMethod.GetIndexers:
                    handlerTask = HandleGetIndexers;
                    break;
                case WebApiMethod.TestIndexer:
                    handlerTask = HandleTestIndexer;
                    break;
                case WebApiMethod.DeleteIndexer:
                    handlerTask = HandleDeleteIndexer;
                    break;
                case WebApiMethod.GetSonarrConfig:
                    handlerTask = HandleGetSonarrConfig;
                    break;
                case WebApiMethod.ApplySonarrConfig:
                    handlerTask = HandleApplySonarrConfig;
                    break;
                case WebApiMethod.TestSonarr:
                    handlerTask = HandleTestSonarr;
                    break;
                case WebApiMethod.ApplyJackettConfig:
                    handlerTask = HandleApplyJackettConfig;
                    break;
                case WebApiMethod.GetJackettConfig:
                    handlerTask = HandleJackettConfig;
                    break;
                case WebApiMethod.JackettRestart:
                    handlerTask = HandleJackettRestart;
                    break;
                default:
                    handlerTask = HandleInvalidApiMethod;
                    break;
            }
            JToken jsonReply = await handlerTask(context);
            await ReplyWithJson(context, jsonReply, method.ToString());
        }