Skip to content

Commit aa516af

Browse files
committed
admin => transformations + 415 for unsupported media types
1 parent 1b3c07c commit aa516af

2 files changed

Lines changed: 21 additions & 9 deletions

File tree

containers/aggregator-server/config/admin.go renamed to containers/aggregator-server/config/transformations.go

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,30 +9,30 @@ import (
99
"github.com/sirupsen/logrus"
1010
)
1111

12-
type AdminConfigData struct {
12+
type TransformationsConfigData struct {
1313
etagTransformations int
1414
transformations string
1515
}
1616

17-
func InitAdminConfiguration(mux *http.ServeMux) error {
18-
logrus.Info("Initializing admin configuration")
17+
func InitTransformationsConfiguration(mux *http.ServeMux) error {
18+
logrus.Info("Initializing transformations configuration")
1919

2020
transformations := fmt.Sprintf(hardcodedAvailableTransformationsTemplate, model.ExternalHost)
2121

22-
config := AdminConfigData{
22+
config := TransformationsConfigData{
2323
etagTransformations: 0,
2424
transformations: transformations,
2525
}
2626

2727
// Register HTTP handler
2828
mux.HandleFunc("/config/transformations", config.HandleTransformationsEndpoint)
2929

30-
logrus.Info("Admin configuration initialization completed")
30+
logrus.Info("Transformations configuration initialization completed")
3131
return nil
3232
}
3333

3434
// HandleTransformationsEndpoint handles requests to the /config/transformations endpoint
35-
func (config AdminConfigData) HandleTransformationsEndpoint(w http.ResponseWriter, r *http.Request) {
35+
func (config TransformationsConfigData) HandleTransformationsEndpoint(w http.ResponseWriter, r *http.Request) {
3636
switch r.Method {
3737
case "HEAD":
3838
config.headAvailableTransformations(w, r)
@@ -44,14 +44,26 @@ func (config AdminConfigData) HandleTransformationsEndpoint(w http.ResponseWrite
4444
}
4545

4646
// getAvailableTransformations HEAD /config/transformations retrieves all available transformations
47-
func (config *AdminConfigData) headAvailableTransformations(w http.ResponseWriter, _ *http.Request) {
47+
func (config *TransformationsConfigData) headAvailableTransformations(w http.ResponseWriter, r *http.Request) {
48+
accept := r.Header.Get("Accept")
49+
if accept != "" && accept != "*/*" && accept != "text/turtle" {
50+
http.Error(w, "Unsupported Media Type. Only text/turtle is supported.", http.StatusUnsupportedMediaType)
51+
return
52+
}
53+
4854
header := w.Header()
4955
header.Set("ETag", strconv.Itoa(config.etagTransformations))
5056
header.Set("Content-Type", "text/turtle")
5157
}
5258

5359
// getAvailableTransformations GET /config/transformations retrieves all available transformations
54-
func (config *AdminConfigData) getAvailableTransformations(w http.ResponseWriter, _ *http.Request) {
60+
func (config *TransformationsConfigData) getAvailableTransformations(w http.ResponseWriter, r *http.Request) {
61+
accept := r.Header.Get("Accept")
62+
if accept != "" && accept != "*/*" && accept != "text/turtle" {
63+
http.Error(w, "Unsupported Media Type. Only text/turtle is supported.", http.StatusUnsupportedMediaType)
64+
return
65+
}
66+
5567
header := w.Header()
5668
header.Set("ETag", strconv.Itoa(config.etagTransformations))
5769
header.Set("Content-Type", "text/turtle")

containers/aggregator-server/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func main() {
6565
serverMux := http.NewServeMux()
6666

6767
// Configuration endpoint
68-
err = config.InitAdminConfiguration(serverMux)
68+
err = config.InitTransformationsConfiguration(serverMux)
6969
if err != nil {
7070
logrus.WithError(err).Warn("Failed to set up configuration endpoint (UMA might be down)")
7171
}

0 commit comments

Comments
 (0)