core/internal/port/internal/apimodel/server.go

57 lines
1.3 KiB
Go

package apimodel
import (
"gitea.dwysokinski.me/twhelp/corev3/internal/domain"
)
func NewServer(s domain.Server) Server {
converted := Server{
Key: s.Key(),
CreatedAt: s.CreatedAt(),
NumBarbarianVillages: s.NumBarbarianVillages(),
NumBonusVillages: s.NumBonusVillages(),
NumPlayerVillages: s.NumPlayerVillages(),
NumPlayers: s.NumPlayers(),
NumTribes: s.NumTribes(),
NumVillages: s.NumVillages(),
Open: s.Open(),
Url: s.URL().String(),
}
if v := s.PlayerDataSyncedAt(); !v.IsZero() {
converted.PlayerDataSyncedAt = &v
}
if v := s.TribeDataSyncedAt(); !v.IsZero() {
converted.TribeDataSyncedAt = &v
}
if v := s.VillageDataSyncedAt(); !v.IsZero() {
converted.VillageDataSyncedAt = &v
}
if v := s.EnnoblementDataSyncedAt(); !v.IsZero() {
converted.EnnoblementDataSyncedAt = &v
}
return converted
}
func NewListServersResponse(res domain.ListServersResult) ListServersResponse {
servers := res.Servers()
resp := ListServersResponse{
Data: make([]Server, 0, len(servers)),
Cursor: Cursor{
Next: res.Next().Encode(),
Self: res.Self().Encode(),
},
}
for _, s := range servers {
resp.Data = append(resp.Data, NewServer(s))
}
return resp
}