core/internal/port/internal/apimodel/tribe.go

58 lines
1.4 KiB
Go

package apimodel
import (
"gitea.dwysokinski.me/twhelp/corev3/internal/domain"
)
func NewTribe(t domain.Tribe) Tribe {
converted := Tribe{
AllPoints: t.AllPoints(),
BestRank: t.BestRank(),
BestRankAt: t.BestRankAt(),
CreatedAt: t.CreatedAt(),
Dominance: t.Dominance(),
Id: t.ID(),
MostPoints: t.MostPoints(),
MostPointsAt: t.MostPointsAt(),
MostVillages: t.MostVillages(),
MostVillagesAt: t.MostVillagesAt(),
Name: t.Name(),
NumMembers: t.NumMembers(),
NumVillages: t.NumVillages(),
Points: t.Points(),
ProfileUrl: t.ProfileURL().String(),
Rank: t.Rank(),
RankAtt: t.OD().RankAtt(),
RankDef: t.OD().RankDef(),
RankTotal: t.OD().RankTotal(),
ScoreAtt: t.OD().ScoreAtt(),
ScoreDef: t.OD().ScoreDef(),
ScoreTotal: t.OD().ScoreTotal(),
Tag: t.Tag(),
}
if deletedAt := t.DeletedAt(); !deletedAt.IsZero() {
converted.DeletedAt = &deletedAt
}
return converted
}
func NewListTribesResponse(res domain.ListTribesResult) ListTribesResponse {
tribes := res.Tribes()
resp := ListTribesResponse{
Data: make([]Tribe, 0, len(tribes)),
Cursor: Cursor{
Next: res.Next().Encode(),
Self: res.Self().Encode(),
},
}
for _, t := range tribes {
resp.Data = append(resp.Data, NewTribe(t))
}
return resp
}