start working on parent/child statuses

This commit is contained in:
tsmethurst
2021-06-16 17:00:54 +02:00
parent a42e05eee0
commit 6a053ecfd8
5 changed files with 130 additions and 4 deletions

View File

@ -0,0 +1,50 @@
package pg
import (
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
"sync"
)
func (ps *postgresService) StatusParents(status *gtsmodel.Status) ([]*gtsmodel.Status, error) {
parents := []*gtsmodel.Status{}
ps.statusParent(status, &parents)
return parents, nil
}
func (ps *postgresService) statusParent(status *gtsmodel.Status, foundStatuses *[]*gtsmodel.Status) {
if status.InReplyToID == "" {
return
}
parentStatus := &gtsmodel.Status{}
if err := ps.conn.Model(parentStatus).Where("id = ?", status.InReplyToID).Select(); err == nil {
*foundStatuses = append(*foundStatuses, parentStatus)
}
ps.statusParent(parentStatus, foundStatuses)
}
func (ps *postgresService) StatusChildren(status *gtsmodel.Status) ([]*gtsmodel.Status, error) {
children := []*gtsmodel.Status{}
// ps.statusChildren(status, &children)
return children, nil
}
func (ps *postgresService) statusChildren(status *gtsmodel.Status, foundStatuses *sync.Map) {
// immediateChildren := []*gtsmodel.Status{}
// foundStatuses.Store()
// err := ps.conn.Model(&immediateChildren).Where("in_reply_to_id = ?", status.ID).Select()
// if err != nil {
// return
// }
// for _, child := range immediateChildren {
// f[""][0] = child
// }
return
}