This repository has been archived on 2026-04-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
core/server/routing/convert.go
Jeffrey Smith 11fd8c1e57 step 1: rename module chat-switchboard → switchboard-core
- go.mod module name
- All 714 import references across 289 Go files
- VERSION: 0.1.0
- CI DB names: switchboard_core_{ci,dev,test}
- Docker image: gobha/switchboard-core
- Test fixtures: JWT issuer, repo names
- .env.example, docker-compose container name
- Compiles clean (go build exit 0)
2026-03-25 19:48:04 -04:00

41 lines
873 B
Go

package routing
import (
"encoding/json"
"switchboard-core/models"
)
// FromModel converts a DB model to a routing Policy for evaluation.
func FromModel(m *models.RoutingPolicy) Policy {
p := Policy{
ID: m.ID,
Name: m.Name,
Scope: m.Scope,
TeamID: m.TeamID,
Priority: m.Priority,
Type: PolicyType(m.Type),
IsActive: m.IsActive,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
// Convert JSONMap → PolicyConfig via JSON round-trip.
// This is safe because PolicyConfig fields match the JSONB keys.
if m.Config != nil {
raw, _ := json.Marshal(m.Config)
json.Unmarshal(raw, &p.Config)
}
return p
}
// FromModels converts a slice of DB models to routing Policies.
func FromModels(ms []models.RoutingPolicy) []Policy {
out := make([]Policy, len(ms))
for i := range ms {
out[i] = FromModel(&ms[i])
}
return out
}