/// <summary> /// Calls a REST API, auto deserializes output /// </summary> /// <typeparam name="TOut"></typeparam> /// <param name="url"></param> /// <param name="route"></param> /// <param name="method"></param> /// <param name="queryParams"></param> /// <param name="data"></param> /// <param name="authToken"></param> /// <param name="customHeaders"></param> /// <param name="transferAuthHdr">Whether or not auth header should be automatically transferred to outgoing request; when a custom auth header is provided it will always take precedence</param> /// <param name="transferMhHdrs">Whether or not should auto transfer maphive request headers such as request src, lng, etc</param> /// <param name="transferRequestHdrs">Whether or not should auto transfer request headers so they are sent out </param> /// <returns></returns> protected internal virtual async Task <RestApi.ApiCallOutput <TOut> > RestApiCall <TOut>(string url, string route, Method method = Method.GET, Dictionary <string, object> queryParams = null, object data = null, string authToken = null, Dictionary <string, string> customHeaders = null, bool transferAuthHdr = true, bool transferMhHdrs = true, bool transferRequestHdrs = true) { if (transferMhHdrs) { customHeaders ??= new Dictionary <string, string>(); foreach (var mhHdr in WebClientConfiguration.GetMhHeaders()) { if (Request.Headers.ContainsKey(mhHdr)) { if (!customHeaders.ContainsKey(mhHdr)) { customHeaders.Add(mhHdr, Request.Headers[mhHdr]); } } } } return(await Cartomatic.Utils.RestApi.RestApiCall <TOut>(Request, url, route, method, queryParams, data, authToken, customHeaders, null, transferAuthHdr, transferRequestHdrs)); }
public async Task <IHttpActionResult> GetWebClientConfiguration() { try { return(Ok(await WebClientConfiguration.ReadAsync(new MapHiveDbContext("MapHiveMeta")))); } catch (Exception ex) { return(HandleException(ex)); } }