45 lines
951 B
Go
45 lines
951 B
Go
package dto
|
|
|
|
import "smoop-api/internal/models"
|
|
|
|
type TrackerDto struct {
|
|
GUID string `json:"guid"`
|
|
Name string `json:"name"`
|
|
Users []UserDto `json:"users,omitempty"`
|
|
}
|
|
|
|
type TrackerListDto struct {
|
|
Trackers []TrackerDto `json:"trackers"`
|
|
Offset int `json:"offset"`
|
|
Limit int `json:"limit"`
|
|
Total int64 `json:"total"`
|
|
}
|
|
|
|
type CreateTrackerDto struct {
|
|
GUID string `json:"guid" binding:"required"`
|
|
Name string `json:"name" binding:"required"`
|
|
UserIDs []uint `json:"userIds"`
|
|
}
|
|
|
|
type RenameTrackerDto struct {
|
|
Name string `json:"name" binding:"required"`
|
|
}
|
|
|
|
type SetTrackerUsersDto struct {
|
|
UserIDs []uint `json:"userIds"`
|
|
}
|
|
|
|
func MapTracker(t models.Tracker) TrackerDto {
|
|
out := TrackerDto{
|
|
GUID: t.GUID,
|
|
Name: t.Name,
|
|
}
|
|
if len(t.Users) > 0 {
|
|
out.Users = make([]UserDto, 0, len(t.Users))
|
|
for _, u := range t.Users {
|
|
out.Users = append(out.Users, MapUser(u))
|
|
}
|
|
}
|
|
return out
|
|
}
|