mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
chore: add parent field to memo
This commit is contained in:
@@ -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)
|
||||||
|
Reference in New Issue
Block a user