diff --git a/web/public/api/activitypub/inbox.go b/web/public/api/activitypub/inbox.go index 4b561aa..9f57266 100644 --- a/web/public/api/activitypub/inbox.go +++ b/web/public/api/activitypub/inbox.go @@ -747,10 +747,31 @@ func handleCreate(w http.ResponseWriter, r *http.Request, object map[string]any) if objectNote.Summary != nil { dbNote.ContentWarning = sql.NullString{Valid: true, String: *objectNote.Summary} } - err = dbgen.Note.Create(&dbNote) + tx := dbgen.Q.Begin() + err = tx.Note.Create(&dbNote) if err != nil { + _ = tx.Rollback() log.Error().Err(err).Any("note", dbNote).Msg("Failed to create note in db") webutils.ProblemDetailsStatusOnly(w, http.StatusInternalServerError) return } + createActivity := models.Activity{ + Type: string(models.ActivityCreate), + Id: object["id"].(string), + ObjectId: dbNote.ID, + ObjectType: uint32(models.ActivitystreamsActivityTargetNote), + } + err = tx.Activity.Create(&createActivity) + if err != nil { + _ = tx.Rollback() + log.Error().Err(err).Any("note", dbNote).Msg("Failed to create note create activity in db") + webutils.ProblemDetailsStatusOnly(w, http.StatusInternalServerError) + return + } + err = tx.Commit() + if err != nil { + log.Error().Err(err).Any("note", dbNote).Msg("Failed to submit note creation in db") + webutils.ProblemDetailsStatusOnly(w, http.StatusInternalServerError) + return + } }