MCPcopy
hub / github.com/hasura/graphql-engine / SettingsAPI

Function SettingsAPI

cli/migrate/api/settings.go:16–60  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

14}
15
16func SettingsAPI(c *gin.Context) {
17 // Get migrate instance
18 migratePtr, ok := c.Get("migrate")
19 if !ok {
20 return
21 }
22
23 t := migratePtr.(*migrate.Migrate)
24
25 // Switch on request method
26 switch c.Request.Method {
27 case "GET":
28 name := "migration_mode"
29 setting, err := t.GetSetting(name)
30 if err != nil {
31 if strings.HasPrefix(err.Error(), DataAPIError) {
32 c.JSON(500, &Response{Code: "data_api_error", Message: err.Error()})
33 return
34 }
35 c.JSON(500, &Response{Code: "internal_error", Message: err.Error()})
36 return
37 }
38 c.JSON(200, &gin.H{name: setting})
39 case "PUT":
40 var request SettingRequest
41 // Bind Request body to Request struct
42 if c.BindJSON(&request) != nil {
43 c.JSON(500, &Response{Code: "internal_error", Message: "Something went wrong"})
44 return
45 }
46
47 err := t.UpdateSetting(request.Name, request.Value)
48 if err != nil {
49 if strings.HasPrefix(err.Error(), DataAPIError) {
50 c.JSON(500, &Response{Code: "data_api_error", Message: err.Error()})
51 return
52 }
53 c.JSON(500, &Response{Code: "internal_error", Message: err.Error()})
54 return
55 }
56 c.JSON(200, &Response{Message: "Successfuly set"})
57 default:
58 c.JSON(http.StatusMethodNotAllowed, &gin.H{"message": "Method not allowed"})
59 }
60}

Callers

nothing calls this directly

Calls 5

JSONMethod · 0.80
GetMethod · 0.65
GetSettingMethod · 0.65
UpdateSettingMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected