Exemplo n.º 1
0
        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" })));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        public override Task <JObject> ProcessRequest(AlexaSmartHomeRequest request, ILambdaContext lambdaContext)
        {
            var config = Configuration.ProvideFor(lambdaContext);

            return(PerformPassthroughRequest(request, config, lambdaContext));
        }
Exemplo n.º 5
0
 public abstract Task <JObject> ProcessRequest(AlexaSmartHomeRequest request, ILambdaContext lambdaContext);