Exemplo n.º 1
0
        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()));
 }