public async Task <IActionResult> ConfigurationAsync() { using (var operation = Log.ConfirmOnExit()) { var requestBody = await ReadBody(Request); var links = new RequestDescriptors(new RequestDescriptor(Request.Path, Request.Method, requestBody: requestBody)) { Configuration = ClientConfigurationController.ClientConfigurationApi, Completion = LanguageServicesController.CompletionApi, AcceptCompletion = new RequestDescriptor("{acceptanceUri}", templated: true), LoadFromGist = new RequestDescriptor("/workspace/fromgist/{gistId}/{commitHash?}", method: "GET", templated: true, properties: new[] { new RequestDescriptorProperty("workspaceType"), new RequestDescriptorProperty("extractBuffers") }), Diagnostics = LanguageServicesController.DiagnosticsApi, SignatureHelp = LanguageServicesController.SignatureHelpApi, Snippet = new RequestDescriptor("/snippet", method: "GET", properties: new[] { new RequestDescriptorProperty("from"), }), Run = RunController.RunApi, Compile = CompileController.CompileApi, Version = SensorsController.VersionApi, ProjectFromGist = new RequestDescriptor("/project/fromGist"), RegionsFromFiles = ProjectController.RegionsFromFilesApi, GetPackage = PackagesController.GetPackageApi }; var versionId = links.ComputeHash(); var clientConfig = new ClientConfiguration(versionId, links, 30000, string.Empty, false); operation.Succeed(); return(Ok(clientConfig)); } }
public static string ComputeHash(this RequestDescriptors links) { return(ToSha256(links.ToJson())); }