public NeuronModule(INeuronQueryService neuronQueryService) : base("/cortex/neurons") { // use this from clients instead of neurongraphclient since latter is eventually consistent // returned version can be used by client to check if change is applicable this.Get("/{neuronId}", async(parameters) => new TextResponse(JsonConvert.SerializeObject( await neuronQueryService.GetNeuronById(parameters.neuronId)) ) ); }
public NeuronModule(INeuronQueryService queryService, IEventStoreApplicationService eventStoreApplicationService) : base("/cortex/neurons") { this.Get("", async(parameters) => { return(await NeuronModule.ProcessRequest(async() => { var nv = await queryService.GetNeurons(NeuronModule.ParseNeuronQueryOrEmpty(this.Request.Url.Query), NeuronModule.GetUserId(this.Request)); return new TextResponse(JsonConvert.SerializeObject(nv)); } )); } ); this.Get("/{neuronid:guid}", async(parameters) => { return(await NeuronModule.ProcessRequest(async() => { var nv = await queryService.GetNeuronById(parameters.neuronid, NeuronModule.ParseNeuronQueryOrEmpty(this.Request.Url.Query), NeuronModule.GetUserId(this.Request)); return new TextResponse(JsonConvert.SerializeObject(nv)); } )); } ); this.Get("/{centralid:guid}/relatives", async(parameters) => { return(await NeuronModule.ProcessRequest(async() => { var nv = await queryService.GetNeurons( parameters.centralid, NeuronModule.ParseNeuronQueryOrEmpty(this.Request.Url.Query), NeuronModule.GetUserId(this.Request) ); return new TextResponse(JsonConvert.SerializeObject(nv)); } )); } ); this.Get("/{centralid:guid}/relatives/{neuronid:guid}", async(parameters) => { return(await NeuronModule.ProcessRequest(async() => { var nv = await queryService.GetNeuronById( parameters.neuronid, parameters.centralid, NeuronModule.ParseNeuronQueryOrEmpty(this.Request.Url.Query), NeuronModule.GetUserId(this.Request) ); return new TextResponse(JsonConvert.SerializeObject(nv)); } )); } ); this.Get("/{aggregateid:guid}/events", async(parameters) => { return(await NeuronModule.ProcessRequest(async() => { // TODO: validate if guid represents a neuron var nv = await eventStoreApplicationService.Get( parameters.aggregateid, 0 ); return new TextResponse(JsonConvert.SerializeObject(nv)); } )); } ); }
public GraphModule(INeuronQueryService neuronQueryService, ITerminalQueryService terminalQueryService) : base("/cortex/graph") { this.Get("/neurons", async(parameters) => { return(await GraphModule.ProcessRequest(async() => { var nv = await neuronQueryService.GetNeurons(GraphModule.ExtractQuery(this.Request.Query)); return new TextResponse(JsonConvert.SerializeObject(nv)); } )); } ); this.Get("/neurons/{neuronid:guid}", async(parameters) => { return(await GraphModule.ProcessRequest(async() => { var nv = await neuronQueryService.GetNeuronById( parameters.neuronid, GraphModule.ExtractQuery(this.Request.Query) ); return new TextResponse(JsonConvert.SerializeObject(nv)); } )); } ); this.Get("/neurons/{centralid:guid}/relatives", async(parameters) => { return(await GraphModule.ProcessRequest(async() => { var nv = await neuronQueryService.GetNeurons( parameters.centralid, GraphModule.ExtractQuery(this.Request.Query) ); return new TextResponse(JsonConvert.SerializeObject(nv)); } )); } ); this.Get("/neurons/{centralid:guid}/relatives/{neuronid:guid}", async(parameters) => { return(await GraphModule.ProcessRequest(async() => { var nv = await neuronQueryService.GetNeuronById( parameters.neuronid, parameters.centralid, GraphModule.ExtractQuery(this.Request.Query) ); return new TextResponse(JsonConvert.SerializeObject(nv)); } )); } ); this.Get("/terminals/{terminalid:guid}", async(parameters) => { return(await GraphModule.ProcessRequest(async() => { var nv = await terminalQueryService.GetTerminalById( parameters.terminalid, GraphModule.ExtractQuery(this.Request.Query) ); return new TextResponse(JsonConvert.SerializeObject(nv)); } )); } ); }