summaryrefslogtreecommitdiff
path: root/internal/api/client
diff options
context:
space:
mode:
Diffstat (limited to 'internal/api/client')
-rw-r--r--internal/api/client/accounts/lists_test.go2
-rw-r--r--internal/api/client/lists/listcreate.go37
-rw-r--r--internal/api/client/lists/listupdate.go18
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