trepa/internal/variables/api/controller.go

40 lines
779 B
Go

package api
import (
"encoding/json"
"net/http"
"gitea.qpismont.fr/qpismont/trepa/internal/core"
"gitea.qpismont.fr/qpismont/trepa/internal/variables/domain"
)
type Controller struct {
service domain.VariableService
}
func NewController(service domain.VariableService) Controller {
return Controller{service: service}
}
func (c Controller) GetVariableByName(w *core.Response, r *http.Request) {
name := r.PathValue("name")
variable, httpErr := c.service.GetVariable(name)
if httpErr != nil {
w.WriteError(httpErr)
return
}
response := GetVariableResponse{
Name: variable.Name,
Value: variable.Value,
}
responseJson, err := json.Marshal(response)
if err != nil {
w.WriteError(core.NewInternalServerError(err))
return
}
w.Json(responseJson)
}