summaryrefslogtreecommitdiff
path: root/internal/api/model
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2024-09-09 18:07:25 +0200
committerLibravatar GitHub <noreply@github.com>2024-09-09 18:07:25 +0200
commit5543fd53400037dc8ae22d4919b7085c46177ce1 (patch)
tree9f4b9df4a65165e32888ac038a7c5f6f0724233d /internal/api/model
parent[chore]: Bump golang.org/x/crypto from 0.26.0 to 0.27.0 (#3283) (diff)
downloadgotosocial-5543fd53400037dc8ae22d4919b7085c46177ce1.tar.xz
[feature/frontend] Add options to include Unlisted posts or hide all posts (#3272)
* [feature/frontend] Add options to include Unlisted posts or hide all posts * finish up * swagger * move invalidate call into bundb package, avoid invalidating if not necessary * rename show_web_statuses => web_visibility * don't use ptr for webvisibility * last bits
Diffstat (limited to 'internal/api/model')
-rw-r--r--internal/api/model/account.go3
-rw-r--r--internal/api/model/source.go5
-rw-r--r--internal/api/model/status.go2
3 files changed, 10 insertions, 0 deletions
diff --git a/internal/api/model/account.go b/internal/api/model/account.go
index 0eaf52734..d34d7d519 100644
--- a/internal/api/model/account.go
+++ b/internal/api/model/account.go
@@ -227,6 +227,9 @@ type UpdateCredentialsRequest struct {
EnableRSS *bool `form:"enable_rss" json:"enable_rss"`
// Hide this account's following/followers collections.
HideCollections *bool `form:"hide_collections" json:"hide_collections"`
+ // Visibility of statuses to show via the web view.
+ // "none", "public" (default), or "unlisted" (which includes public as well).
+ WebVisibility *string `form:"web_visibility" json:"web_visibility"`
}
// UpdateSource is to be used specifically in an UpdateCredentialsRequest.
diff --git a/internal/api/model/source.go b/internal/api/model/source.go
index 3b57f8565..cc3eb78ee 100644
--- a/internal/api/model/source.go
+++ b/internal/api/model/source.go
@@ -26,6 +26,11 @@ type Source struct {
// private = Followers-only post
// direct = Direct post
Privacy Visibility `json:"privacy"`
+ // Visibility level(s) of posts to show for this account via the web api.
+ // "public" = default, show only Public visibility posts on the web.
+ // "unlisted" = show Public *and* Unlisted visibility posts on the web.
+ // "none" = show no posts on the web, not even Public ones.
+ WebVisibility Visibility `json:"web_visibility"`
// Whether new statuses should be marked sensitive by default.
Sensitive bool `json:"sensitive"`
// The default posting language for new statuses.
diff --git a/internal/api/model/status.go b/internal/api/model/status.go
index d0acafae8..9b83fa582 100644
--- a/internal/api/model/status.go
+++ b/internal/api/model/status.go
@@ -232,6 +232,8 @@ type StatusCreateRequest struct {
type Visibility string
const (
+ // VisibilityNone is visible to nobody. This is only used for the visibility of web statuses.
+ VisibilityNone Visibility = "none"
// VisibilityPublic is visible to everyone, and will be available via the web even for nonauthenticated users.
VisibilityPublic Visibility = "public"
// VisibilityUnlisted is visible to everyone, but only on home timelines, lists, etc.