github.com/web-platform-tests/wpt.fyi@v0.0.0-20240530210107-70cf978996f1/api/routes.go (about) 1 // Copyright 2017 The WPT Dashboard Project. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package api 6 7 import "github.com/web-platform-tests/wpt.fyi/shared" 8 9 // RegisterRoutes adds all the api route handlers. 10 func RegisterRoutes() { 11 // API endpoint for diff of two test run summary JSON blobs. 12 shared.AddRoute("/api/diff", "api-diff", 13 shared.WrapApplicationJSON( 14 shared.WrapPermissiveCORS(apiDiffHandler))) 15 16 // API endpoint for fetching all labels. 17 shared.AddRoute("/api/labels", "api-labels", 18 shared.WrapApplicationJSON( 19 shared.WrapPermissiveCORS(apiLabelsHandler))) 20 21 // API endpoint for fetching a manifest for a commit SHA. 22 shared.AddRoute("/api/manifest", "api-manifest", 23 shared.WrapApplicationJSON( 24 shared.WrapPermissiveCORS(apiManifestHandler))) 25 26 // API endpoint for listing all test runs for a given SHA. 27 shared.AddRoute("/api/runs", "api-test-runs", 28 shared.WrapApplicationJSON( 29 shared.WrapPermissiveCORS(apiTestRunsHandler))) 30 31 // API endpoint for listing SHAs for the test runs. 32 shared.AddRoute("/api/shas", "api-shas", 33 shared.WrapApplicationJSON( 34 shared.WrapPermissiveCORS(apiSHAsHandler))) 35 36 // API endpoint for listing SHAs for the test runs. 37 shared.AddRoute("/api/versions", "api-versions", 38 shared.WrapApplicationJSON( 39 shared.WrapPermissiveCORS(apiVersionsHandler))) 40 41 // API endpoints for a single test run, by 42 // ID: 43 shared.AddRoute("/api/runs/{id}", "api-test-run", 44 shared.WrapApplicationJSON( 45 shared.WrapPermissiveCORS(apiTestRunHandler))) 46 // 'product' param & 'sha' param: 47 shared.AddRoute("/api/run", "api-test-run", 48 shared.WrapApplicationJSON( 49 shared.WrapPermissiveCORS(apiTestRunHandler))) 50 51 // API endpoint for listing pending test runs 52 pendingTestRuns := shared.WrapApplicationJSON( 53 shared.WrapPermissiveCORS(apiPendingTestRunsHandler)) 54 shared.AddRoute("/api/status", "api-pending-test-runs", pendingTestRuns) 55 shared.AddRoute("/api/status/{filter:pending|invalid|empty|duplicate}", "api-pending-test-runs", pendingTestRuns) 56 57 // API endpoint for redirecting to a run's summary JSON blob. 58 shared.AddRoute("/api/results", "api-results", shared.WrapPermissiveCORS(apiResultsRedirectHandler)) 59 60 // API endpoint for redirecting to a screenshot png blob. 61 shared.AddRoute( 62 "/api/screenshot/{screenshot:.*}", 63 "api-screenshot", 64 shared.WrapPermissiveCORS(apiScreenshotRedirectHandler), 65 ) 66 67 // API endpoint for searching Metadata for the products. 68 shared.AddRoute("/api/metadata", "api-metadata", shared.WrapPermissiveCORS(apiMetadataHandler)) 69 70 // API endpoint for searching pending Metadata stored in memory. 71 shared.AddRoute( 72 "/api/metadata/pending", 73 "api-pending-metadata", 74 shared.WrapApplicationJSON(shared.WrapPermissiveCORS(apiPendingMetadataHandler)), 75 ) 76 77 // API endpoint for modifying Metadata. 78 shared.AddRoute( 79 "/api/metadata/triage", 80 "api-metadata-triage", 81 shared.WrapTrustedCORS(apiMetadataTriageHandler, CORSList, []string{"PATCH"}), 82 ) 83 84 // API endpoint for checking a user's login status. 85 shared.AddRoute( 86 "/api/user", 87 "api-user", 88 shared.WrapApplicationJSON(shared.WrapTrustedCORS(apiUserHandler, CORSList, nil)), 89 ) 90 91 // API endpoint for fetching browser-specific failure data. 92 shared.AddRoute( 93 "/api/bsf", 94 "api-bsf", 95 shared.WrapApplicationJSON(shared.WrapPermissiveCORS(apiBSFHandler)), 96 ) 97 98 // API endpoint for fetching historical data of a specific test for each of the four major browsers. 99 shared.AddRoute("/api/history", "api-history", 100 shared.WrapApplicationJSON( 101 shared.WrapPermissiveCORS(testHistoryHandler))) 102 }