63 lines
1.5 KiB
Go
63 lines
1.5 KiB
Go
package apimodel
|
|
|
|
import (
|
|
"gitea.dwysokinski.me/twhelp/corev3/internal/domain"
|
|
)
|
|
|
|
func NewPlayerOpponentsDefeated(od domain.OpponentsDefeated) PlayerOpponentsDefeated {
|
|
return PlayerOpponentsDefeated{
|
|
RankAtt: od.RankAtt(),
|
|
RankDef: od.RankDef(),
|
|
RankSup: od.RankSup(),
|
|
RankTotal: od.RankTotal(),
|
|
ScoreAtt: od.ScoreAtt(),
|
|
ScoreDef: od.ScoreDef(),
|
|
ScoreSup: od.ScoreSup(),
|
|
ScoreTotal: od.ScoreTotal(),
|
|
}
|
|
}
|
|
|
|
func NewPlayer(p domain.Player) Player {
|
|
converted := Player{
|
|
BestRank: p.BestRank(),
|
|
BestRankAt: p.BestRankAt(),
|
|
CreatedAt: p.CreatedAt(),
|
|
Id: p.ID(),
|
|
LastActivityAt: p.LastActivityAt(),
|
|
MostPoints: p.MostPoints(),
|
|
MostPointsAt: p.MostPointsAt(),
|
|
MostVillages: p.MostVillages(),
|
|
MostVillagesAt: p.MostVillagesAt(),
|
|
Name: p.Name(),
|
|
NumVillages: p.NumVillages(),
|
|
OpponentsDefeated: NewPlayerOpponentsDefeated(p.OD()),
|
|
Points: p.Points(),
|
|
ProfileUrl: p.ProfileURL().String(),
|
|
Rank: p.Rank(),
|
|
}
|
|
|
|
if deletedAt := p.DeletedAt(); !deletedAt.IsZero() {
|
|
converted.DeletedAt = &deletedAt
|
|
}
|
|
|
|
return converted
|
|
}
|
|
|
|
func NewListPlayersResponse(res domain.ListPlayersResult) ListPlayersResponse {
|
|
players := res.Players()
|
|
|
|
resp := ListPlayersResponse{
|
|
Data: make([]Player, 0, len(players)),
|
|
Cursor: Cursor{
|
|
Next: res.Next().Encode(),
|
|
Self: res.Self().Encode(),
|
|
},
|
|
}
|
|
|
|
for _, p := range players {
|
|
resp.Data = append(resp.Data, NewPlayer(p))
|
|
}
|
|
|
|
return resp
|
|
}
|