Files
kandev/apps/backend/internal/user/controller/controller.go
T
2026-01-13 22:37:36 +00:00

52 lines
1.4 KiB
Go

package controller
import (
"context"
"github.com/kandev/kandev/internal/user/dto"
"github.com/kandev/kandev/internal/user/service"
)
type Controller struct {
svc *service.Service
}
func NewController(svc *service.Service) *Controller {
return &Controller{svc: svc}
}
func (c *Controller) GetCurrentUser(ctx context.Context) (dto.UserResponse, error) {
user, err := c.svc.GetCurrentUser(ctx)
if err != nil {
return dto.UserResponse{}, err
}
settings, err := c.svc.GetUserSettings(ctx)
if err != nil {
return dto.UserResponse{}, err
}
return dto.UserResponse{
User: dto.FromUser(user),
Settings: dto.FromUserSettings(settings),
}, nil
}
func (c *Controller) GetUserSettings(ctx context.Context) (dto.UserSettingsResponse, error) {
settings, err := c.svc.GetUserSettings(ctx)
if err != nil {
return dto.UserSettingsResponse{}, err
}
return dto.UserSettingsResponse{Settings: dto.FromUserSettings(settings)}, nil
}
func (c *Controller) UpdateUserSettings(ctx context.Context, req dto.UpdateUserSettingsRequest) (dto.UserSettingsResponse, error) {
settings, err := c.svc.UpdateUserSettings(ctx, &service.UpdateUserSettingsRequest{
WorkspaceID: req.WorkspaceID,
BoardID: req.BoardID,
RepositoryIDs: req.RepositoryIDs,
})
if err != nil {
return dto.UserSettingsResponse{}, err
}
return dto.UserSettingsResponse{Settings: dto.FromUserSettings(settings)}, nil
}