Initial Commit
This commit is contained in:
45
types.go
Normal file
45
types.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package profilefed
|
||||
|
||||
import "encoding/json"
|
||||
|
||||
// Role represents a user's role on a server
|
||||
type Role string
|
||||
|
||||
// Server roles
|
||||
const (
|
||||
RoleServerHost Role = "server_host"
|
||||
RoleAdmin Role = "admin"
|
||||
RoleModerator Role = "moderator"
|
||||
RoleDeveloper Role = "developer"
|
||||
RoleUser Role = "user"
|
||||
)
|
||||
|
||||
// Descriptor represents a ProfileFed descriptor
|
||||
type Descriptor struct {
|
||||
// ID is an arbitrary ID string for the profile.
|
||||
ID string `json:"id"`
|
||||
// Namespaces is a list of namespaces used in the profile.
|
||||
Namespaces []string `json:"namespaces"`
|
||||
// DisplayName is the user's preferred display name.
|
||||
DisplayName string `json:"display_name"`
|
||||
// Username is the user's username.
|
||||
Username string `json:"username"`
|
||||
// Bio is the user's bio text.
|
||||
Bio string `json:"bio"`
|
||||
// Role is the user's role on the server. If not set,
|
||||
// [RoleUser] is assumed.
|
||||
Role Role `json:"role"`
|
||||
// Extra is additional user data defined by namespaces
|
||||
Extra []Extra `json:"extra"`
|
||||
}
|
||||
|
||||
// Extra represents additional user data defined by namespaces
|
||||
type Extra struct {
|
||||
// Namespace is the namespace URL used in this object
|
||||
Namespace string `json:"namespace"`
|
||||
// Type is an arbitrary string that represents the type of
|
||||
// data in the Data field.
|
||||
Type string `json:"type"`
|
||||
// Data is the arbitrary additional user data
|
||||
Data json.RawMessage `json:"data"`
|
||||
}
|
||||
Reference in New Issue
Block a user