public static HttpResponseMessage Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "v0.1/nonces/stat")] HttpRequestMessage req, ILogger log, ExecutionContext context) { IConfigurationRoot config = new ConfigurationBuilder() .SetBasePath(context.FunctionAppDirectory) .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables() .Build(); var queryClient = BigQueryFactory.Create(config["GOOGLE_APPLICATION:CREDENTIALS"], config["GOOGLE_APPLICATION:PROJECT_ID"]); var query = new BlockNonceStatQuery(queryClient); var cache = new RedisCacheManager(config["REDIS:CONNECTION_STRING"], int.Parse(config["REDIS:LIVE_TIME"])); var result = cache.Get(CacheKey.BLOCK_NONCE_STAT, query.Get); return(req.CreateResponse(HttpStatusCode.OK, result)); }
private static Dictionary <string, Func <object> > GetMapping(IConfigurationRoot config) { var client = BigQueryFactory.Create(config["GOOGLE_APPLICATION:CREDENTIALS"], config["GOOGLE_APPLICATION:PROJECT_ID"]); return(new Dictionary <string, Func <object> > { { BlockStatFilter.Default.ToKey(CacheKey.BLOCK_STAT), () => { var q = new BlockStatQuery(client); return q.Get(BlockStatFilter.Default); } }, { BlockStatFilter.Month.ToKey(CacheKey.BLOCK_STAT), () => { var q = new BlockStatQuery(client); return q.Get(BlockStatFilter.Month); } }, { CacheKey.CONTRACT_DEPLOYMENT_STAT.ToString(), () => { var q = new DeploymentStatQuery(client); return q.Get(); } }, { CacheKey.CONTRACT_OBSOLESCENCE.ToString(), () => { var q = new ContractObsolescenceQuery(client); return q.Get(); } }, { MinerStatFilter.Default.ToKey(CacheKey.MINER_STAT), () => { var q = new MinerStatQuery(client); return q.Get(MinerStatFilter.Default); } }, { MinerStatFilter.Month.ToKey(CacheKey.MINER_STAT), () => { var q = new MinerStatQuery(client); return q.Get(MinerStatFilter.Month); } }, { MinerStatFilter.Year.ToKey(CacheKey.MINER_STAT), () => { var q = new MinerStatQuery(client); return q.Get(MinerStatFilter.Year); } }, { TokenStatFilter.Default.ToKey(CacheKey.TOKEN_USAGE), () => { var q = new TokenUsageQuery(client); return q.Get(TokenStatFilter.Default); } }, { TokenStatFilter.Month.ToKey(CacheKey.TOKEN_USAGE), () => { var q = new TokenUsageQuery(client); return q.Get(TokenStatFilter.Month); } }, { TokenStatFilter.Year.ToKey(CacheKey.TOKEN_USAGE), () => { var q = new TokenUsageQuery(client); return q.Get(TokenStatFilter.Year); } }, { CacheKey.ERC721_STAT, () => { var q = new Erc721StatQuery(client); return q.Get(); } }, { CacheKey.ERC721_USAGE, () => { var q = new Erc721UsageQuery(client); return q.Get(); } }, }); }