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"`
|
||||
|
||||
// Related fields
|
||||
Parent *Memo `json:"parent"`
|
||||
CreatorName string `json:"creatorName"`
|
||||
CreatorUsername string `json:"creatorUsername"`
|
||||
ResourceList []*Resource `json:"resourceList"`
|
||||
@@ -849,6 +850,22 @@ func (s *APIV1Service) convertMemoFromStore(ctx context.Context, memo *store.Mem
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
|
@@ -42,6 +42,9 @@ type Memo struct {
|
||||
Visibility Visibility
|
||||
|
||||
// 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
|
||||
ResourceIDList []int32
|
||||
RelationList []*MemoRelation
|
||||
|
@@ -176,11 +176,16 @@ func (d *Driver) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
relationType := store.MemoRelationType(relatedMemoTypeList[1])
|
||||
memo.RelationList = append(memo.RelationList, &store.MemoRelation{
|
||||
MemoID: memo.ID,
|
||||
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)
|
||||
|
@@ -176,11 +176,16 @@ func (d *Driver) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
relationType := store.MemoRelationType(relatedMemoTypeList[1])
|
||||
memo.RelationList = append(memo.RelationList, &store.MemoRelation{
|
||||
MemoID: memo.ID,
|
||||
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)
|
||||
|
Reference in New Issue
Block a user