fix: normalize auth me payload for perfil

This commit is contained in:
Tiago Yamamoto 2026-03-04 13:20:50 -06:00
parent e701b57f6a
commit b99f4427ae

View file

@ -142,27 +142,58 @@ func (h *Handler) GetMe(w http.ResponseWriter, r *http.Request) {
} }
var companyName string var companyName string
var isSuperAdmin bool isSuperAdmin := user.Superadmin || user.Role == "superadmin"
if user.CompanyID != uuid.Nil { if user.CompanyID != uuid.Nil {
if c, err := h.svc.GetCompany(r.Context(), user.CompanyID); err == nil && c != nil { if c, err := h.svc.GetCompany(r.Context(), user.CompanyID); err == nil && c != nil {
companyName = c.CorporateName companyName = c.CorporateName
if c.Category == "admin" {
isSuperAdmin = true
}
} }
} }
enderecos := make([]string, 0)
empresasDados := make([]string, 0)
if user.CompanyID != uuid.Nil {
empresasDados = append(empresasDados, user.CompanyID.String())
}
response := struct { response := struct {
*domain.User ID uuid.UUID `json:"id"`
CompanyID uuid.UUID `json:"company_id"`
Role string `json:"role"`
Nivel string `json:"nivel"`
Name string `json:"name"`
Nome string `json:"nome"`
Username string `json:"username"`
Email string `json:"email"`
EmailVerified bool `json:"email_verified"`
NomeSocial string `json:"nome-social"`
CPF string `json:"cpf"`
RegistroCompleto bool `json:"registro-completo"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
CompanyName string `json:"company_name"` CompanyName string `json:"company_name"`
SuperAdmin bool `json:"superadmin"` SuperAdmin bool `json:"superadmin"`
EmpresasDados []string `json:"empresasDados"` // Frontend expects this array Enderecos []string `json:"enderecos"`
EmpresasDados []string `json:"empresasDados"`
}{ }{
User: user, ID: user.ID,
CompanyID: user.CompanyID,
Role: user.Role,
Nivel: user.Role,
Name: user.Name,
Nome: user.Name,
Username: user.Username,
Email: user.Email,
EmailVerified: user.EmailVerified,
NomeSocial: user.NomeSocial,
CPF: user.CPF,
RegistroCompleto: true,
CreatedAt: user.CreatedAt,
UpdatedAt: user.UpdatedAt,
CompanyName: companyName, CompanyName: companyName,
SuperAdmin: isSuperAdmin, SuperAdmin: isSuperAdmin,
EmpresasDados: []string{user.CompanyID.String()}, Enderecos: enderecos,
EmpresasDados: empresasDados,
} }
writeJSON(w, http.StatusOK, response) writeJSON(w, http.StatusOK, response)