chore: add parent field to memo

pull/2323/head
Steven 2 years ago
parent 922de07751
commit be046cae8e

@ -57,6 +57,7 @@ type Memo struct {
Pinned bool `json:"pinned"` Pinned bool `json:"pinned"`
// Related fields // Related fields
Parent *Memo `json:"parent"`
CreatorName string `json:"creatorName"` CreatorName string `json:"creatorName"`
CreatorUsername string `json:"creatorUsername"` CreatorUsername string `json:"creatorUsername"`
ResourceList []*Resource `json:"resourceList"` ResourceList []*Resource `json:"resourceList"`
@ -849,6 +850,22 @@ func (s *APIV1Service) convertMemoFromStore(ctx context.Context, memo *store.Mem
} }
memoResponse.ResourceList = resourceList memoResponse.ResourceList = resourceList
if memo.ParentID != nil {
parentMemo, err := s.Store.GetMemo(ctx, &store.FindMemo{
ID: memo.ParentID,
})
if err != nil {
return nil, err
}
if parentMemo != nil {
parent, err := s.convertMemoFromStore(ctx, parentMemo)
if err != nil {
return nil, err
}
memoResponse.Parent = parent
}
}
return memoResponse, nil return memoResponse, nil
} }

@ -42,6 +42,9 @@ type Memo struct {
Visibility Visibility Visibility Visibility
// Composed fields // Composed fields
// For those comment memos, the parent ID is the memo ID of the memo being commented.
// If the parent ID is nil, then this memo is not a comment.
ParentID *int32
Pinned bool Pinned bool
ResourceIDList []int32 ResourceIDList []int32
RelationList []*MemoRelation RelationList []*MemoRelation

@ -176,11 +176,16 @@ func (d *Driver) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.
if err != nil { if err != nil {
return nil, err return nil, err
} }
relationType := store.MemoRelationType(relatedMemoTypeList[1])
memo.RelationList = append(memo.RelationList, &store.MemoRelation{ memo.RelationList = append(memo.RelationList, &store.MemoRelation{
MemoID: memo.ID, MemoID: memo.ID,
RelatedMemoID: relatedMemoID, RelatedMemoID: relatedMemoID,
Type: store.MemoRelationType(relatedMemoTypeList[1]), Type: relationType,
}) })
// Set the first parent ID if relation type is comment.
if memo.ParentID == nil && relationType == store.MemoRelationComment {
memo.ParentID = &relatedMemoID
}
} }
} }
list = append(list, &memo) list = append(list, &memo)

@ -176,11 +176,16 @@ func (d *Driver) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.
if err != nil { if err != nil {
return nil, err return nil, err
} }
relationType := store.MemoRelationType(relatedMemoTypeList[1])
memo.RelationList = append(memo.RelationList, &store.MemoRelation{ memo.RelationList = append(memo.RelationList, &store.MemoRelation{
MemoID: memo.ID, MemoID: memo.ID,
RelatedMemoID: relatedMemoID, RelatedMemoID: relatedMemoID,
Type: store.MemoRelationType(relatedMemoTypeList[1]), Type: relationType,
}) })
// Set the first parent ID if relation type is comment.
if memo.ParentID == nil && relationType == store.MemoRelationComment {
memo.ParentID = &relatedMemoID
}
} }
} }
list = append(list, &memo) list = append(list, &memo)

Loading…
Cancel
Save