changed from json projects to m:n

This commit is contained in:
2022-02-14 22:19:44 +01:00
parent e69073ecad
commit 66f9df86d8
6 changed files with 117 additions and 43 deletions

View File

@@ -140,20 +140,35 @@ func setupApi(l *zap.Logger, cc *cache.MetricCache, us *users.Service, ps *proje
return
}
type GetProjectMembers struct {
MemberId int `json:"memberId" binding:"required"`
MemberRole string `json:"memberRole" binding:"required"`
}
type GetProject struct {
Id int `json:"id" binding:"required"`
Name string `json:"name" binding:"required"`
MemberIds []int `json:"memberIds" binding:"required"`
AdminIds []int `json:"adminIds" binding:"required"`
Id int `json:"id" binding:"required"`
Name string `json:"name" binding:"required"`
Members []*GetProjectMembers `json:"members" binding:"required"`
}
membersAsGetProjectMembers := func(projectMembers []projects.ProjectMember) []*GetProjectMembers {
gpm := make([]*GetProjectMembers, len(projectMembers))
for i, pm := range projectMembers {
gpm[i] = &GetProjectMembers{
MemberId: pm.MemberId,
MemberRole: pm.Role,
}
}
return gpm
}
getProject := make([]GetProject, 0)
for _, p := range projectsArr {
getProject = append(getProject, GetProject{
Id: p.Id,
Name: p.Name,
MemberIds: p.MemberIds,
AdminIds: p.AdminIds,
Id: p.Id,
Name: p.Name,
Members: membersAsGetProjectMembers(p.Members),
})
}
c.JSON(http.StatusOK, getProject)