public ApiModule() { Get["/heartbeats/stats"] = _ => Negotiate.WithModel(Monitoring.GetStats()); Get["/endpoints"] = _ => Negotiate.WithModel(Monitoring.GetEndpoints()); Get["/endpoints/known", true] = (parameters, token) => GetKnownEndpointsApi.Execute(this, NoInput.Instance); Patch["/endpoints/{id}", true] = async(parameters, token) => { var data = this.Bind <EndpointUpdateModel>(); var endpointId = (Guid)parameters.id; if (data.MonitorHeartbeat) { await Monitoring.EnableMonitoring(endpointId) .ConfigureAwait(false); } else { await Monitoring.DisableMonitoring(endpointId) .ConfigureAwait(false); } return(HttpStatusCode.Accepted); }; }
internal EndpointsMonitoringController(EndpointInstanceMonitoring monitoring, GetKnownEndpointsApi getKnownEndpointsApi, IDocumentStore documentStore) { this.documentStore = documentStore; this.getKnownEndpointsApi = getKnownEndpointsApi; endpointInstanceMonitoring = monitoring; }