Add debug endpoint for getting replies to node id
All checks were successful
/ docker (push) Successful in 4m19s

This commit is contained in:
Melody Becker 2025-05-16 22:04:57 +02:00
parent 1b0c63a3b1
commit c9895bc9af
5 changed files with 20 additions and 5 deletions

View file

@ -25,6 +25,6 @@ func (n *CollectionTargetType) Value() (driver.Value, error) {
}
func (ct *CollectionTargetType) Scan(value any) error {
*ct = CollectionTargetType(value.(uint32))
*ct = CollectionTargetType(value.(string))
return nil
}

View file

@ -16,7 +16,7 @@ type Note struct {
// Soft delete means that this entry still exists in the db, but gorm won't include it anymore unless specifically told to
// If not null, this entry is marked as deleted
DeletedAt gorm.DeletedAt `gorm:"index"`
Creator User // The user that created this note
Creator *User // The user that created this note
CreatorId string // Id of the creator user
Remote bool // Whether the note is originally a remote one and just "cached"
// Raw content of the note. So without additional formatting applied
@ -26,7 +26,7 @@ type Note struct {
RepliesTo sql.NullString // Url of the message this replies to
Quotes sql.NullString // url of the message this note quotes
AccessLevel NoteAccessLevel // Where to send this message to (public, home, followers, dm)
Origin RemoteServer
Origin *RemoteServer
OriginId uint
AttachmentRelations []NoteToAttachment `gorm:"foreignKey:NoteId;constraint:OnDelete:CASCADE"` // Attachments added on to this note

View file

@ -59,7 +59,7 @@ func postAs(w http.ResponseWriter, r *http.Request) {
n := dbgen.Note
note := models.Note{
ID: shared.NewId(),
Creator: *user,
Creator: user,
CreatorId: user.ID,
RawContent: data.Content,
Remote: false,
@ -167,3 +167,17 @@ func notesFrom(w http.ResponseWriter, r *http.Request) {
})
webutils.SendJson(w, publicNotes)
}
func inReplyTo(w http.ResponseWriter, r *http.Request) {
log := hlog.FromRequest(r)
noteId := r.PathValue("id")
notes, err := dbgen.Note.
Where(dbgen.Note.RepliesTo.Eq(sql.NullString{Valid: true, String: noteId})).
Find()
if err != nil {
log.Error().Err(err).Str("id", noteId).Msg("Error getting replies to note with id")
webutils.ProblemDetailsStatusOnly(w, http.StatusInternalServerError)
return
}
_ = webutils.SendJson(w, notes)
}

View file

@ -34,6 +34,7 @@ func New(addr string) *Server {
handler.HandleFunc("GET /import-server", importServerInfo)
handler.HandleFunc("GET /request-follow", kickoffFollow)
handler.HandleFunc("POST /send-as", proxyMessageToTarget)
handler.HandleFunc("GET /replies-to/{id}", inReplyTo)
web := http.Server{
Addr: addr,
Handler: webutils.ChainMiddlewares(

View file

@ -740,7 +740,7 @@ func handleCreate(w http.ResponseWriter, r *http.Request, object map[string]any)
dbNote := models.Note{
ID: objectNote.Id,
CreatedAt: objectNote.Published,
Creator: *actingUser,
Creator: actingUser,
CreatorId: actingUser.ID,
Remote: true,
RawContent: objectNote.Content,