Agent par défaut

This commit is contained in:
fabien committed 2026-09-07 21:04:48 +02:00
1 parent cf10b9073b
commit f74e4d1043
24 files changed
+385 -37

No files matched your search

+19 -2
View File
@@ -7,11 +7,19 @@ import (
"trankilou.fr/lassistanoque/backend/internal/domain"
"trankilou.fr/lassistanoque/backend/internal/service/agent"
"trankilou.fr/lassistanoque/backend/internal/service/auth"
"trankilou.fr/lassistanoque/backend/internal/service/user"
)
func NewAgentGroup(prefix string, e *echo.Group, service *agent.Service, middlewares ...echo.MiddlewareFunc) *echo.Group {
func NewAgentGroup(
prefix string,
e *echo.Group,
agentService *agent.Service,
userService *user.Service,
middlewares ...echo.MiddlewareFunc) *echo.Group {
agentHandler := &AgentHandler{
agentService: service,
agentService: agentService,
userService: userService,
}
agent := e.Group(prefix, middlewares...)
@@ -26,6 +34,7 @@ func NewAgentGroup(prefix string, e *echo.Group, service *agent.Service, middlew
type AgentHandler struct {
agentService *agent.Service
userService *user.Service
}
func (h *AgentHandler) ListAgents(c *echo.Context) error {
@@ -98,3 +107,11 @@ func (h *AgentHandler) DeleteAgent(c *echo.Context) error {
}
return c.JSON(http.StatusOK, agentID)
}
type DefaulAgentRequest struct {
AgentID string `json:"AgentId"`
}
type DefaulAgentResponse struct {
NewDefaultAgentID *string `json:"newDefaultAgentId"`
OldDefaultAgentID *string `json:"oldDefaultAgentId"`
}
+55
View File
@@ -0,0 +1,55 @@
package handlers
import (
"net/http"
"github.com/labstack/echo/v5"
"trankilou.fr/lassistanoque/backend/internal/domain"
"trankilou.fr/lassistanoque/backend/internal/service/auth"
"trankilou.fr/lassistanoque/backend/internal/service/user"
)
func NewTeamGroup(prefix string, e *echo.Group, service *user.Service, middlewares ...echo.MiddlewareFunc) *echo.Group {
teamHandler := &TeamHandler{
userService: service,
}
h := e.Group(prefix, middlewares...)
h.GET("/:team", teamHandler.Get)
h.PUT("/:team", teamHandler.Update)
return h
}
type TeamHandler struct {
userService *user.Service
}
func (h TeamHandler) Get(c *echo.Context) error {
userID := c.Get(auth.ContextUserIDKey).(string)
teamID := c.Param("team")
user, err := h.userService.GetTeam(userID, teamID)
if err != nil {
return echo.NewHTTPError(http.StatusUnauthorized, err.Error())
}
return c.JSON(http.StatusOK, user)
}
func (h TeamHandler) Update(c *echo.Context) error {
userID := c.Get(auth.ContextUserIDKey).(string)
teamID := c.Param("team")
var updTeam domain.Team
if err := c.Bind(&updTeam); err != nil {
return c.String(http.StatusBadRequest, "bad request")
}
if teamID != updTeam.ID {
return c.String(http.StatusBadRequest, "bad request")
}
user, err := h.userService.UpdateTeam(userID, &updTeam)
if err != nil {
return c.String(http.StatusBadRequest, err.Error())
}
return c.JSON(http.StatusOK, user)
}
+17 -5
View File
@@ -1,6 +1,7 @@
package http
import (
"context"
"embed"
"fmt"
"io/fs"
@@ -30,7 +31,7 @@ var indexhtml []byte
var robotstxt []byte
type Router struct {
echo *echo.Echo
server *http.Server
}
type Dependencies struct {
@@ -44,6 +45,8 @@ type Dependencies struct {
func NewRouter(deps Dependencies) *Router {
cfg := config.GetConfig()
e := echo.New()
e.Use(middleware.RequestLogger())
e.Use(middleware.CORS("http://localhost:5173"))
@@ -76,14 +79,23 @@ func NewRouter(deps Dependencies) *Router {
_ = handlers.NewUserGroup("/user", api, deps.UserService, deps.TokenManager.TokenMiddleware)
_ = handlers.NewMiscGroup("/misc", api, deps.TokenManager.TokenMiddleware)
_ = handlers.NewModelGroup("/provider", api, deps.ProviderService, deps.TokenManager.TokenMiddleware)
_ = handlers.NewAgentGroup("/agent", api, deps.AgentService, deps.TokenManager.TokenMiddleware)
_ = handlers.NewAgentGroup("/agent", api, deps.AgentService, deps.UserService, deps.TokenManager.TokenMiddleware)
_ = handlers.NewTeamGroup("/team", api, deps.UserService, deps.TokenManager.TokenMiddleware)
server := http.Server{
Addr: fmt.Sprintf(":%d", cfg.HttpPort),
Handler: e,
}
return &Router{
echo: e,
&server,
}
}
func (r *Router) Start() error {
cfg := config.GetConfig()
return r.echo.Start(fmt.Sprintf(":%d", cfg.HttpPort))
return r.server.ListenAndServe()
}
func (r *Router) Stop(ctx context.Context) error {
return r.server.Shutdown(ctx)
}