[feature] Implement the preferences client API (#1740)

This adds the preferences endpoint to our Mastodon Client API
implementation. It's a read-only endpoint that returns a number of
user preferences. Applications can query these settings when logging in
a user (for the first time) to configure themselves.
This commit is contained in:
Daenney
2023-05-06 17:42:58 +02:00
committed by GitHub
parent 9b4b4d4eb8
commit 6d138588d8
8 changed files with 315 additions and 2 deletions

View File

@@ -35,6 +35,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/api/client/lists"
"github.com/superseriousbusiness/gotosocial/internal/api/client/media"
"github.com/superseriousbusiness/gotosocial/internal/api/client/notifications"
"github.com/superseriousbusiness/gotosocial/internal/api/client/preferences"
"github.com/superseriousbusiness/gotosocial/internal/api/client/reports"
"github.com/superseriousbusiness/gotosocial/internal/api/client/search"
"github.com/superseriousbusiness/gotosocial/internal/api/client/statuses"
@@ -65,6 +66,7 @@ type Client struct {
lists *lists.Module // api/v1/lists
media *media.Module // api/v1/media, api/v2/media
notifications *notifications.Module // api/v1/notifications
preferences *preferences.Module // api/v1/preferences
reports *reports.Module // api/v1/reports
search *search.Module // api/v1/search, api/v2/search
statuses *statuses.Module // api/v1/statuses
@@ -101,6 +103,7 @@ func (c *Client) Route(r router.Router, m ...gin.HandlerFunc) {
c.lists.Route(h)
c.media.Route(h)
c.notifications.Route(h)
c.preferences.Route(h)
c.reports.Route(h)
c.search.Route(h)
c.statuses.Route(h)
@@ -128,6 +131,7 @@ func NewClient(db db.DB, p *processing.Processor) *Client {
lists: lists.New(p),
media: media.New(p),
notifications: notifications.New(p),
preferences: preferences.New(p),
reports: reports.New(p),
search: search.New(p),
statuses: statuses.New(p),