public override Task <JObject> ProcessRequest(AlexaSmartHomeRequest request, ILambdaContext lambdaContext) { var config = Configuration.ProvideFor(lambdaContext); switch (request.Directive.Header.Name) { case "EchoRequest": return(PerformEchoRequest(request.Directive.Payload, config, lambdaContext)); } Log.Error(lambdaContext, $"Request '{request.Directive.Header.Name}' is unkown"); return(Task.FromResult(JObject.FromObject(new { Message = $"Failed, {request.Directive.Header.Name} is unknown" }))); }
public override async Task <JObject> ProcessRequest(AlexaSmartHomeRequest request, ILambdaContext lambdaContext) { Log.Warn(lambdaContext, "Caching not yet implemented!"); // TODO // check the cache // function is stateless, what media is used for the cache? var response = await base.ProcessRequest(request, lambdaContext); // TODO // update cache return(response); }
protected async Task <JObject> PerformPassthroughRequest(AlexaSmartHomeRequest request, Configuration config, ILambdaContext lambdaContext) { var client = new PubSubClient(config, lambdaContext); Log.Debug(lambdaContext, "Starting passthrough..."); var sw = Stopwatch.StartNew(); JObject response = await client.RequestBridgePassthrough(Meta.AloxiMessageOperation.PipeAlexaRequest, JObject.FromObject(request, this.json)); sw.Stop(); if (response == null) { Log.Warn(lambdaContext, $"Passthrough completed in {sw.Elapsed.TotalSeconds}s without result"); } else { Log.Info(lambdaContext, $"Successful passthrough, took {sw.Elapsed.TotalSeconds}s"); } return(response); }
public override Task <JObject> ProcessRequest(AlexaSmartHomeRequest request, ILambdaContext lambdaContext) { var config = Configuration.ProvideFor(lambdaContext); return(PerformPassthroughRequest(request, config, lambdaContext)); }
public abstract Task <JObject> ProcessRequest(AlexaSmartHomeRequest request, ILambdaContext lambdaContext);