public async Task <HttpResponseMessage> Delete(string functionId) { await FunctionsProvider .Delete(functionId : functionId) .ConfigureAwait(continueOnCapturedContext: false); return(this.Request.CreateResponse(statusCode: HttpStatusCode.NoContent)); }
public async Task <HttpResponseMessage> Get() { var functions = await FunctionsProvider .List() .ConfigureAwait(continueOnCapturedContext: false); return(this.Request.CreateResponse( value: functions.Select(function => function.ToModel()), statusCode: HttpStatusCode.OK)); }
public async Task <HttpResponseMessage> Get(string functionId) { var function = await FunctionsProvider .Get(functionId : functionId) .ConfigureAwait(continueOnCapturedContext: false); if (function == null) { return(this.Request.CreateResponse(statusCode: HttpStatusCode.NotFound)); } return(this.Request.CreateResponse( value: function.ToModel(), statusCode: HttpStatusCode.OK)); }
public async Task <HttpResponseMessage> Post(string functionId, [FromBody] JToken input) { var stopwatch = Stopwatch.StartNew(); var logs = new List <ExecutionLog>(); var function = await FunctionsProvider .Get(functionId : functionId) .ConfigureAwait(continueOnCapturedContext: false); logs.Add(new ExecutionLog { Name = "GetFunction", Duration = stopwatch.ElapsedMilliseconds }); if (function == null) { return(this.Request.CreateResponse(statusCode: HttpStatusCode.NotFound)); } var request = new ExecutionRequest { Function = function.ToModel(), Input = input }; var response = await ExecutionProvider .Execute(request : request) .ConfigureAwait(continueOnCapturedContext: false); if (response == null) { return(this.Request.CreateResponse(statusCode: HttpStatusCode.ServiceUnavailable)); } logs.Add(response.Logs); response.Logs = new ExecutionLog { Name = "InvokeController", Duration = stopwatch.ElapsedMilliseconds, SubLogs = logs.ToArray() }; return(this.Request.CreateResponse( statusCode: HttpStatusCode.OK, value: response)); }
public async Task <HttpResponseMessage> Post([FromBody] FunctionUpload upload) { var function = await upload .ToFunction() .ConfigureAwait(continueOnCapturedContext: false); await FunctionsProvider .Create(function : function) .ConfigureAwait(continueOnCapturedContext: false); var response = this.Request.CreateResponse( value: function.ToModel(), statusCode: HttpStatusCode.Created); response.Headers.Location = this.Request.RequestUri.Append(suffix: function.Id); return(response); }
private static async Task WatchFunctionExistence(string functionId, string containerName) { while (true) { var exists = await FunctionsProvider .Exists(functionId : functionId) .ConfigureAwait(continueOnCapturedContext: false); if (!exists) { await ContainerProvider .DeleteContainerIfExists(containerName : containerName) .ConfigureAwait(continueOnCapturedContext: false); } await Task .Delay(delay : TimeSpan.FromSeconds(15)) .ConfigureAwait(continueOnCapturedContext: false); } }
public async Task <HttpResponseMessage> Delete() { var functions = await FunctionsProvider .List() .ConfigureAwait(continueOnCapturedContext: false); await Task .WhenAll(functions.Select(async function => { await FunctionsProvider .Delete(functionId: function.Id) .ConfigureAwait(continueOnCapturedContext: false); await QueueProvider .DeleteQueue(queueName: function.Id) .ConfigureAwait(continueOnCapturedContext: false); })) .ConfigureAwait(continueOnCapturedContext: false); return(this.Request.CreateResponse(statusCode: HttpStatusCode.NoContent)); }