diff options
Diffstat (limited to 'internal/api/client')
-rw-r--r-- | internal/api/client/accounts/lists_test.go | 2 | ||||
-rw-r--r-- | internal/api/client/lists/listcreate.go | 37 | ||||
-rw-r--r-- | internal/api/client/lists/listupdate.go | 18 |
3 files changed, 52 insertions, 5 deletions
diff --git a/internal/api/client/accounts/lists_test.go b/internal/api/client/accounts/lists_test.go index 637babc35..95b50b1d3 100644 --- a/internal/api/client/accounts/lists_test.go +++ b/internal/api/client/accounts/lists_test.go @@ -89,7 +89,7 @@ func (suite *ListsTestSuite) getLists(targetAccountID string, expectedHTTPStatus func (suite *ListsTestSuite) TestGetListsHit() { targetAccount := suite.testAccounts["admin_account"] - suite.getLists(targetAccount.ID, http.StatusOK, `[{"id":"01H0G8E4Q2J3FE3JDWJVWEDCD1","title":"Cool Ass Posters From This Instance","replies_policy":"followed"}]`) + suite.getLists(targetAccount.ID, http.StatusOK, `[{"id":"01H0G8E4Q2J3FE3JDWJVWEDCD1","title":"Cool Ass Posters From This Instance","replies_policy":"followed","exclusive":false}]`) } func (suite *ListsTestSuite) TestGetListsNoHit() { diff --git a/internal/api/client/lists/listcreate.go b/internal/api/client/lists/listcreate.go index 9046ce34d..c8f547ccc 100644 --- a/internal/api/client/lists/listcreate.go +++ b/internal/api/client/lists/listcreate.go @@ -46,6 +46,35 @@ import ( // produces: // - application/json // +// parameters: +// - +// name: title +// type: string +// description: |- +// Title of this list. +// Sample: Cool People +// in: formData +// - +// name: replies_policy +// type: string +// description: |- +// RepliesPolicy for this list. +// followed = Show replies to any followed user +// list = Show replies to members of the list +// none = Show replies to no one +// Sample: list +// enum: +// - followed +// - list +// - none +// in: formData +// - +// name: exclusive +// in: formData +// description: Hide posts from members of this list from your home timeline. +// type: boolean +// default: false +// // security: // - OAuth2 Bearer: // - write:lists @@ -101,7 +130,13 @@ func (m *Module) ListCreatePOSTHandler(c *gin.Context) { return } - apiList, errWithCode := m.processor.List().Create(c.Request.Context(), authed.Account, form.Title, repliesPolicy) + apiList, errWithCode := m.processor.List().Create( + c.Request.Context(), + authed.Account, + form.Title, + repliesPolicy, + form.Exclusive, + ) if errWithCode != nil { apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) return diff --git a/internal/api/client/lists/listupdate.go b/internal/api/client/lists/listupdate.go index 312aa9ec7..38caa9621 100644 --- a/internal/api/client/lists/listupdate.go +++ b/internal/api/client/lists/listupdate.go @@ -75,6 +75,11 @@ import ( // - list // - none // in: formData +// - +// name: exclusive +// in: formData +// description: Hide posts from members of this list from your home timeline. +// type: boolean // // security: // - OAuth2 Bearer: @@ -146,13 +151,20 @@ func (m *Module) ListUpdatePUTHandler(c *gin.Context) { repliesPolicy = &rp } - if form.Title == nil && repliesPolicy == nil { - err = errors.New("neither title nor replies_policy was set; nothing to update") + if form.Title == nil && repliesPolicy == nil && form.Exclusive == nil { + err = errors.New("neither title nor replies_policy nor exclusive was set; nothing to update") apiutil.ErrorHandler(c, gtserror.NewErrorBadRequest(err, err.Error()), m.processor.InstanceGetV1) return } - apiList, errWithCode := m.processor.List().Update(c.Request.Context(), authed.Account, targetListID, form.Title, repliesPolicy) + apiList, errWithCode := m.processor.List().Update( + c.Request.Context(), + authed.Account, + targetListID, + form.Title, + repliesPolicy, + form.Exclusive, + ) if errWithCode != nil { apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) return |