Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

samber/loの適用 #789

Merged
merged 13 commits into from
Oct 2, 2024
11 changes: 6 additions & 5 deletions model/admin_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
"context"

"github.com/google/uuid"
"github.com/samber/lo"
"github.com/traPtitech/Jomon/ent"
"github.com/traPtitech/Jomon/ent/user"
)

Expand All @@ -16,12 +18,11 @@ func (repo *EntRepository) GetAdmins(ctx context.Context) ([]*Admin, error) {
return nil, err
}

admins := []*Admin{}
for _, u := range users {
admins = append(admins, &Admin{
admins := lo.Map(users, func(u *ent.User, _ int) *Admin {
return &Admin{
ID: u.ID,
})
}
}
})

return admins, nil
}
Expand Down
8 changes: 4 additions & 4 deletions model/comment_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"time"

"github.com/google/uuid"
"github.com/samber/lo"
"github.com/traPtitech/Jomon/ent"
"github.com/traPtitech/Jomon/ent/comment"
"github.com/traPtitech/Jomon/ent/request"
Expand Down Expand Up @@ -33,10 +34,9 @@ func (repo *EntRepository) GetComments(
if err != nil {
return nil, err
}
modelcomments := []*Comment{}
for _, c := range comments {
modelcomments = append(modelcomments, ConvertEntCommentToModelComment(c, c.Edges.User.ID))
}
modelcomments := lo.Map(comments, func(c *ent.Comment, _ int) *Comment {
return ConvertEntCommentToModelComment(c, c.Edges.User.ID)
})
return modelcomments, nil
}

Expand Down
37 changes: 17 additions & 20 deletions model/group_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"

"github.com/google/uuid"
"github.com/samber/lo"
"github.com/traPtitech/Jomon/ent"
"github.com/traPtitech/Jomon/ent/group"
"github.com/traPtitech/Jomon/ent/user"
Expand All @@ -16,10 +17,9 @@ func (repo *EntRepository) GetGroups(ctx context.Context) ([]*Group, error) {
if err != nil {
return nil, err
}
modelgroups := []*Group{}
for _, g := range groups {
modelgroups = append(modelgroups, ConvertEntGroupToModelGroup(g))
}
modelgroups := lo.Map(groups, func(g *ent.Group, _ int) *Group {
return ConvertEntGroupToModelGroup(g)
})
return modelgroups, nil
}

Expand Down Expand Up @@ -85,10 +85,9 @@ func (repo *EntRepository) GetOwners(ctx context.Context, groupID uuid.UUID) ([]
if err != nil {
return nil, err
}
owners := []*Owner{}
for _, groupowner := range groupowners {
owners = append(owners, &Owner{ID: groupowner.ID})
}
owners := lo.Map(groupowners, func(groupowner *ent.User, _ int) *Owner {
return &Owner{ID: groupowner.ID}
})

return owners, nil
}
Expand All @@ -104,10 +103,9 @@ func (repo *EntRepository) AddOwners(
if err != nil {
return nil, err
}
resowners := []*Owner{}
for _, owner := range ownerIDs {
resowners = append(resowners, &Owner{ID: owner})
}
resowners := lo.Map(ownerIDs, func(owner uuid.UUID, _ int) *Owner {
return &Owner{ID: owner}
})

return resowners, nil
}
Expand Down Expand Up @@ -135,10 +133,10 @@ func (repo *EntRepository) GetMembers(ctx context.Context, groupID uuid.UUID) ([
if err != nil {
return nil, err
}
modelmembers := []*Member{}
for _, member := range members {
modelmembers = append(modelmembers, &Member{member.ID})
}
modelmembers := lo.Map(members, func(member *ent.User, _ int) *Member {
return &Member{member.ID}
})

return modelmembers, nil
}

Expand All @@ -154,11 +152,10 @@ func (repo *EntRepository) AddMembers(
if err != nil {
return nil, err
}
resMembers := lo.Map(userIDs, func(member uuid.UUID, _ int) *Member {
return &Member{member}
})

resMembers := []*Member{}
for _, member := range userIDs {
resMembers = append(resMembers, &Member{member})
}
return resMembers, nil
}

Expand Down
69 changes: 32 additions & 37 deletions model/request_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"time"

"github.com/google/uuid"
"github.com/samber/lo"
"github.com/traPtitech/Jomon/ent"
"github.com/traPtitech/Jomon/ent/group"
"github.com/traPtitech/Jomon/ent/request"
Expand Down Expand Up @@ -115,12 +116,11 @@ func (repo *EntRepository) GetRequests(
return nil, err
}

reqres := []*RequestResponse{}
for _, r := range requests {
rr := convertEntRequestResponseToModelRequestResponse(
reqres := lo.Map(requests, func(r *ent.Request, _ int) *RequestResponse {
return convertEntRequestResponseToModelRequestResponse(
r, r.Edges.Tag, r.Edges.Group, r.Edges.Status[0], r.Edges.User)
reqres = append(reqres, rr)
}
})

return reqres, nil
}

Expand All @@ -138,10 +138,9 @@ func (repo *EntRepository) CreateRequest(
panic(v)
}
}()
var tagIDs []uuid.UUID
for _, t := range tags {
tagIDs = append(tagIDs, t.ID)
}
tagIDs := lo.Map(tags, func(t *Tag, _ int) uuid.UUID {
return t.ID
})
created, err := tx.Client().Request.
Create().
SetTitle(title).
Expand Down Expand Up @@ -236,19 +235,19 @@ func (repo *EntRepository) GetRequest(
if err != nil {
return nil, err
}
var tags []*Tag
for _, t := range r.Edges.Tag {
tags = append(tags, ConvertEntTagToModelTag(t))
}
var targets []*RequestTargetDetail
for _, target := range r.Edges.Target {
targets = append(targets, ConvertEntRequestTargetToModelRequestTargetDetail(target))
}
tags := lo.Map(r.Edges.Tag, func(t *ent.Tag, _ int) *Tag {
return ConvertEntTagToModelTag(t)
})
targets := lo.Map(
r.Edges.Target,
func(target *ent.RequestTarget, _ int) *RequestTargetDetail {
return ConvertEntRequestTargetToModelRequestTargetDetail(target)
},
)
modelGroup := ConvertEntGroupToModelGroup(r.Edges.Group)
var statuses []*RequestStatus
for _, status := range r.Edges.Status {
statuses = append(statuses, convertEntRequestStatusToModelRequestStatus(status))
}
statuses := lo.Map(r.Edges.Status, func(status *ent.RequestStatus, _ int) *RequestStatus {
return convertEntRequestStatusToModelRequestStatus(status)
})
reqdetail := &RequestDetail{
ID: r.ID,
Status: convertEntRequestStatusToModelStatus(&r.Edges.Status[0].Status),
Expand Down Expand Up @@ -279,10 +278,9 @@ func (repo *EntRepository) UpdateRequest(
panic(v)
}
}()
var tagIDs []uuid.UUID
for _, t := range tags {
tagIDs = append(tagIDs, t.ID)
}
tagIDs := lo.Map(tags, func(t *Tag, _ int) uuid.UUID {
return t.ID
})
updated, err := tx.Client().Request.
UpdateOneID(requestID).
SetTitle(title).
Expand Down Expand Up @@ -332,10 +330,9 @@ func (repo *EntRepository) UpdateRequest(
err = RollbackWithError(tx, err)
return nil, err
}
var modeltags []*Tag
for _, enttag := range enttags {
modeltags = append(modeltags, ConvertEntTagToModelTag(enttag))
}
modeltags := lo.Map(enttags, func(enttag *ent.Tag, _ int) *Tag {
return ConvertEntTagToModelTag(enttag)
})
var entgroup *ent.Group
if group != nil {
entgroup, err = updated.QueryGroup().Only(ctx)
Expand All @@ -359,10 +356,9 @@ func (repo *EntRepository) UpdateRequest(
if err != nil {
return nil, err
}
var statuses []*RequestStatus
for _, s := range entstatuses {
statuses = append(statuses, convertEntRequestStatusToModelRequestStatus(s))
}
statuses := lo.Map(entstatuses, func(s *ent.RequestStatus, _ int) *RequestStatus {
return convertEntRequestStatusToModelRequestStatus(s)
})

modelgroup := ConvertEntGroupToModelGroup(entgroup)
reqdetail := &RequestDetail{
Expand All @@ -388,10 +384,9 @@ func convertEntRequestResponseToModelRequestResponse(
if request == nil {
return nil
}
modeltags := []*Tag{}
for _, t := range tags {
modeltags = append(modeltags, ConvertEntTagToModelTag(t))
}
modeltags := lo.Map(tags, func(t *ent.Tag, _ int) *Tag {
return ConvertEntTagToModelTag(t)
})
return &RequestResponse{
ID: request.ID,
Status: convertEntRequestStatusToModelStatus(&status.Status),
Expand Down
39 changes: 17 additions & 22 deletions model/request_target_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"

"github.com/google/uuid"
"github.com/samber/lo"
"github.com/traPtitech/Jomon/ent"
"github.com/traPtitech/Jomon/ent/request"
"github.com/traPtitech/Jomon/ent/requesttarget"
Expand All @@ -25,35 +26,30 @@ func (repo *EntRepository) GetRequestTargets(
if err != nil {
return nil, err
}
var targets []*RequestTargetDetail
for _, t := range ts {
targets = append(targets, ConvertEntRequestTargetToModelRequestTargetDetail(t))
}
targets := lo.Map(ts, func(t *ent.RequestTarget, _ int) *RequestTargetDetail {
return ConvertEntRequestTargetToModelRequestTargetDetail(t)
})
return targets, err
}

func (repo *EntRepository) createRequestTargets(
ctx context.Context, tx *ent.Tx, requestID uuid.UUID, targets []*RequestTarget,
) ([]*RequestTargetDetail, error) {
var bulk []*ent.RequestTargetCreate
for _, t := range targets {
bulk = append(bulk,
tx.Client().RequestTarget.
Create().
SetAmount(t.Amount).
SetRequestID(requestID).
SetUserID(t.Target),
)
}
bulk := lo.Map(targets, func(t *RequestTarget, _ int) *ent.RequestTargetCreate {
return tx.Client().RequestTarget.
Create().
SetAmount(t.Amount).
SetRequestID(requestID).
SetUserID(t.Target)
})
cs, err := tx.Client().RequestTarget.CreateBulk(bulk...).
Save(ctx)
if err != nil {
return nil, err
}
ids := []uuid.UUID{}
for _, c := range cs {
ids = append(ids, c.ID)
}
ids := lo.Map(cs, func(c *ent.RequestTarget, _ int) uuid.UUID {
return c.ID
})
created, err := tx.Client().RequestTarget.
Query().
Where(
Expand All @@ -65,10 +61,9 @@ func (repo *EntRepository) createRequestTargets(
return nil, err
}
// []*ent.RequestTarget to []*RequestTargetDetail
var ts []*RequestTargetDetail
for _, t := range created {
ts = append(ts, ConvertEntRequestTargetToModelRequestTargetDetail(t))
}
ts := lo.Map(created, func(t *ent.RequestTarget, _ int) *RequestTargetDetail {
return ConvertEntRequestTargetToModelRequestTargetDetail(t)
})
return ts, nil
}

Expand Down
9 changes: 5 additions & 4 deletions model/tag_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"time"

"github.com/google/uuid"
"github.com/samber/lo"
"github.com/traPtitech/Jomon/ent"
"github.com/traPtitech/Jomon/ent/tag"
)
Expand All @@ -16,10 +17,10 @@ func (repo *EntRepository) GetTags(ctx context.Context) ([]*Tag, error) {
if err != nil {
return nil, err
}
modeltags := []*Tag{}
for _, t := range tags {
modeltags = append(modeltags, ConvertEntTagToModelTag(t))
}
modeltags := lo.Map(tags, func(t *ent.Tag, _ int) *Tag {
return ConvertEntTagToModelTag(t)
})

return modeltags, nil
}

Expand Down
Loading
Loading