feat(settings): align assignable agents payloads
This commit is contained in:
@@ -80,5 +80,39 @@ func (h *AssignableAgentHandler) List(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
response.OK(c, agents)
|
||||
c.JSON(http.StatusOK, gin.H{"payload": serializeAssignableAgents(accountID, agents)})
|
||||
}
|
||||
|
||||
func serializeAssignableAgents(accountID uint, agents []service.AssignableAgentDTO) []map[string]any {
|
||||
payload := make([]map[string]any, 0, len(agents))
|
||||
for i := range agents {
|
||||
agent := agents[i]
|
||||
availableName := agent.DisplayName
|
||||
if availableName == "" {
|
||||
availableName = agent.Name
|
||||
}
|
||||
provider := agent.Provider
|
||||
if provider == "" {
|
||||
provider = "email"
|
||||
}
|
||||
customRoleID := any(nil)
|
||||
if agent.CustomRoleID != 0 {
|
||||
customRoleID = agent.CustomRoleID
|
||||
}
|
||||
payload = append(payload, map[string]any{
|
||||
"id": agent.ID,
|
||||
"account_id": accountID,
|
||||
"availability_status": agent.AvailabilityStatus,
|
||||
"auto_offline": agent.AutoOffline,
|
||||
"confirmed": agent.Confirmed,
|
||||
"email": agent.Email,
|
||||
"provider": provider,
|
||||
"available_name": availableName,
|
||||
"name": agent.Name,
|
||||
"role": agent.Role,
|
||||
"thumbnail": agent.AvatarURL,
|
||||
"custom_role_id": customRoleID,
|
||||
})
|
||||
}
|
||||
return payload
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user