diff options
author | 2021-04-19 19:42:19 +0200 | |
---|---|---|
committer | 2021-04-19 19:42:19 +0200 | |
commit | 32c5fd987a06e11b14a4247d13187657c14adedd (patch) | |
tree | f5b787ca0f020bea5fd020925e52d3592a77a6ad /pkg/mastotypes/account.go | |
parent | Api/v1/accounts (#8) (diff) | |
download | gotosocial-32c5fd987a06e11b14a4247d13187657c14adedd.tar.xz |
Api/v1/statuses (#11)
This PR adds:
Statuses
New status creation.
View existing status
Delete a status
Fave a status
Unfave a status
See who's faved a status
Media
Upload media attachment and store/retrieve it
Upload custom emoji and store/retrieve it
Fileserver
Serve files from storage
Testing
Test models, testrig -- run a GTS test instance and play around with it.
Diffstat (limited to 'pkg/mastotypes/account.go')
-rw-r--r-- | pkg/mastotypes/account.go | 131 |
1 files changed, 0 insertions, 131 deletions
diff --git a/pkg/mastotypes/account.go b/pkg/mastotypes/account.go deleted file mode 100644 index 3ddd3c517..000000000 --- a/pkg/mastotypes/account.go +++ /dev/null @@ -1,131 +0,0 @@ -/* - GoToSocial - Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package mastotypes - -import "mime/multipart" - -// Account represents a mastodon-api Account object, as described here: https://docs.joinmastodon.org/entities/account/ -type Account struct { - // The account id - ID string `json:"id"` - // The username of the account, not including domain. - Username string `json:"username"` - // The Webfinger account URI. Equal to username for local users, or username@domain for remote users. - Acct string `json:"acct"` - // The profile's display name. - DisplayName string `json:"display_name"` - // Whether the account manually approves follow requests. - Locked bool `json:"locked"` - // Whether the account has opted into discovery features such as the profile directory. - Discoverable bool `json:"discoverable,omitempty"` - // A presentational flag. Indicates that the account may perform automated actions, may not be monitored, or identifies as a robot. - Bot bool `json:"bot"` - // When the account was created. (ISO 8601 Datetime) - CreatedAt string `json:"created_at"` - // The profile's bio / description. - Note string `json:"note"` - // The location of the user's profile page. - URL string `json:"url"` - // An image icon that is shown next to statuses and in the profile. - Avatar string `json:"avatar"` - // A static version of the avatar. Equal to avatar if its value is a static image; different if avatar is an animated GIF. - AvatarStatic string `json:"avatar_static"` - // An image banner that is shown above the profile and in profile cards. - Header string `json:"header"` - // A static version of the header. Equal to header if its value is a static image; different if header is an animated GIF. - HeaderStatic string `json:"header_static"` - // The reported followers of this profile. - FollowersCount int `json:"followers_count"` - // The reported follows of this profile. - FollowingCount int `json:"following_count"` - // How many statuses are attached to this account. - StatusesCount int `json:"statuses_count"` - // When the most recent status was posted. (ISO 8601 Datetime) - LastStatusAt string `json:"last_status_at"` - // Custom emoji entities to be used when rendering the profile. If none, an empty array will be returned. - Emojis []Emoji `json:"emojis"` - // Additional metadata attached to a profile as name-value pairs. - Fields []Field `json:"fields"` - // An extra entity returned when an account is suspended. - Suspended bool `json:"suspended,omitempty"` - // When a timed mute will expire, if applicable. (ISO 8601 Datetime) - MuteExpiresAt string `json:"mute_expires_at,omitempty"` - // An extra entity to be used with API methods to verify credentials and update credentials. - Source *Source `json:"source"` -} - -// AccountCreateRequest represents the form submitted during a POST request to /api/v1/accounts. -// See https://docs.joinmastodon.org/methods/accounts/ -type AccountCreateRequest struct { - // Text that will be reviewed by moderators if registrations require manual approval. - Reason string `form:"reason"` - // The desired username for the account - Username string `form:"username" binding:"required"` - // The email address to be used for login - Email string `form:"email" binding:"required"` - // The password to be used for login - Password string `form:"password" binding:"required"` - // Whether the user agrees to the local rules, terms, and policies. - // These should be presented to the user in order to allow them to consent before setting this parameter to TRUE. - Agreement bool `form:"agreement" binding:"required"` - // The language of the confirmation email that will be sent - Locale string `form:"locale" binding:"required"` -} - -// UpdateCredentialsRequest represents the form submitted during a PATCH request to /api/v1/accounts/update_credentials. -// See https://docs.joinmastodon.org/methods/accounts/ -type UpdateCredentialsRequest struct { - // Whether the account should be shown in the profile directory. - Discoverable *bool `form:"discoverable"` - // Whether the account has a bot flag. - Bot *bool `form:"bot"` - // The display name to use for the profile. - DisplayName *string `form:"display_name"` - // The account bio. - Note *string `form:"note"` - // Avatar image encoded using multipart/form-data - Avatar *multipart.FileHeader `form:"avatar"` - // Header image encoded using multipart/form-data - Header *multipart.FileHeader `form:"header"` - // Whether manual approval of follow requests is required. - Locked *bool `form:"locked"` - // New Source values for this account - Source *UpdateSource `form:"source"` - // Profile metadata name and value - FieldsAttributes *[]UpdateField `form:"fields_attributes"` -} - -// UpdateSource is to be used specifically in an UpdateCredentialsRequest. -type UpdateSource struct { - // Default post privacy for authored statuses. - Privacy *string `form:"privacy"` - // Whether to mark authored statuses as sensitive by default. - Sensitive *bool `form:"sensitive"` - // Default language to use for authored statuses. (ISO 6391) - Language *string `form:"language"` -} - -// UpdateField is to be used specifically in an UpdateCredentialsRequest. -// By default, max 4 fields and 255 characters per property/value. -type UpdateField struct { - // Name of the field - Name *string `form:"name"` - // Value of the field - Value *string `form:"value"` -} |