public async Task<string> Process(string json) { //Serialize given json to model dynamic model = JsonConvert.DeserializeObject(json.ToString()); //Get Api key from request headers var api_key = Request.Headers.Where(x => x.Key == "api_key").FirstOrDefault(); if (api_key.Value != null) { string process = ""; string method = ""; string version = ""; //Check mandatory values if (model["process"] == null) { HttpResponseMessage response = this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Mandatory parameter missing: process"); throw new HttpResponseException(response); } else { //Get process to be called from model process = model["process"]; } if (model["method"] == null) { HttpResponseMessage response = this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Mandatory parameter missing: method"); throw new HttpResponseException(response); } else { //Get process method from model method = model["method"]; } if (model["version"] == null) { HttpResponseMessage response = this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Mandatory parameter missing: version"); throw new HttpResponseException(response); } else { //Get Version version = model["version"]; } //Create Resthelper RestHelper<object> rh = new RestHelper<object>(); //Get Process info from API Discovery var data = await rh.GetConfig(process, method, api_key.Value.FirstOrDefault().ToString(), version); if(data == null) { //If process was not found, or process is not activated, return bad request HttpResponseMessage response = this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Process not found."); throw new HttpResponseException(response); } else { //Get process url from API Data var url = data.api_url; //Call Process var response = await rh.CallGetProcess(data.name,version, method, model["parameters"], url, api_key.Value.FirstOrDefault().ToString()); //Return Data to APP return response; } } else { //API Key missing, returning bad request HttpResponseMessage response = this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "API key missing."); throw new HttpResponseException(response); } }
public async Task <string> Process(string json) { //Serialize given json to model dynamic model = JsonConvert.DeserializeObject(json.ToString()); //Get Api key from request headers var api_key = Request.Headers.Where(x => x.Key == "api_key").FirstOrDefault(); if (api_key.Value != null) { string process = ""; string method = ""; string version = ""; //Check mandatory values if (model["process"] == null) { HttpResponseMessage response = this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Mandatory parameter missing: process"); throw new HttpResponseException(response); } else { //Get process to be called from model process = model["process"]; } if (model["method"] == null) { HttpResponseMessage response = this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Mandatory parameter missing: method"); throw new HttpResponseException(response); } else { //Get process method from model method = model["method"]; } if (model["version"] == null) { HttpResponseMessage response = this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Mandatory parameter missing: version"); throw new HttpResponseException(response); } else { //Get Version version = model["version"]; } //Create Resthelper RestHelper <object> rh = new RestHelper <object>(); //Get Process info from API Discovery var data = await rh.GetConfig(process, method, api_key.Value.FirstOrDefault().ToString(), version); if (data == null) { //If process was not found, or process is not activated, return bad request HttpResponseMessage response = this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Process not found."); throw new HttpResponseException(response); } else { //Get process url from API Data var url = data.api_url; //Call Process var response = await rh.CallGetProcess(data.name, version, method, model["parameters"], url, api_key.Value.FirstOrDefault().ToString()); //Return Data to APP return(response); } } else { //API Key missing, returning bad request HttpResponseMessage response = this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "API key missing."); throw new HttpResponseException(response); } }