Federate draft when published to a blog

This now sends out a `Create` activity when a post is moved from a draft
to a blog.

This closes #9. Closes T526.
This commit is contained in:
Matt Baer 2018-11-16 12:42:21 -05:00
parent 778098d925
commit 8e6d0daa06
2 changed files with 13 additions and 1 deletions

View File

@ -1278,6 +1278,7 @@ func (db *datastore) ClaimPosts(userID int64, collAlias string, posts *[]ClaimPo
var query string
var params []interface{}
var slugIdx int = -1
var coll *Collection
if collAlias == "" {
// Posts are being claimed at /posts/claim, not
// /collections/{alias}/collect, so use given individual collection
@ -1286,7 +1287,6 @@ func (db *datastore) ClaimPosts(userID int64, collAlias string, posts *[]ClaimPo
}
if postCollAlias != "" {
// Associate this post with a collection
var coll *Collection
if p.CreateCollection {
// This is a new collection
// TODO: consider removing this. This seriously complicates this
@ -1389,6 +1389,9 @@ func (db *datastore) ClaimPosts(userID int64, collAlias string, posts *[]ClaimPo
// Post was successfully claimed
r.Code = http.StatusOK
r.Post = fullPost
if coll != nil {
r.Post.Collection = &CollectionObj{Collection: *coll}
}
rowsAffected, _ := qRes.RowsAffected()
if rowsAffected == 0 {

View File

@ -848,6 +848,15 @@ func addPost(app *app, w http.ResponseWriter, r *http.Request) error {
if err != nil {
return err
}
if app.cfg.App.Federation {
for _, pRes := range *res {
if pRes.Code != http.StatusOK {
continue
}
go federatePost(app, pRes.Post, pRes.Post.Collection.ID, false)
}
}
return impart.WriteSuccess(w, res, http.StatusOK)
}