40 lines
779 B
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)
|
|
}
|