admin

package
v0.4.0-rc2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 27, 2022 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// BasePath is the base API path for this module.
	BasePath = "/api/v1/admin"
	// EmojiPath is used for posting/deleting custom emojis.
	EmojiPath = BasePath + "/custom_emojis"
	// DomainBlocksPath is used for posting domain blocks.
	DomainBlocksPath = BasePath + "/domain_blocks"
	// DomainBlocksPathWithID is used for interacting with a single domain block.
	DomainBlocksPathWithID = DomainBlocksPath + "/:" + IDKey
	// AccountsPath is used for listing + acting on accounts.
	AccountsPath = BasePath + "/accounts"
	// AccountsPathWithID is used for interacting with a single account.
	AccountsPathWithID = AccountsPath + "/:" + IDKey
	// AccountsActionPath is used for taking action on a single account.
	AccountsActionPath = AccountsPathWithID + "/action"
	MediaCleanupPath   = BasePath + "/media_cleanup"

	// ExportQueryKey is for requesting a public export of some data.
	ExportQueryKey = "export"
	// ImportQueryKey is for submitting an import of some data.
	ImportQueryKey = "import"
	// IDKey specifies the ID of a single item being interacted with.
	IDKey = "id"
)

Variables

This section is empty.

Functions

func New

func New(processor processing.Processor) api.ClientModule

New returns a new admin module

Types

type Module

type Module struct {
	// contains filtered or unexported fields
}

Module implements the ClientAPIModule interface for admin-related actions (reports, emojis, etc)

func (*Module) AccountActionPOSTHandler added in v0.2.2

func (m *Module) AccountActionPOSTHandler(c *gin.Context)

AccountActionPOSTHandler swagger:operation POST /api/v1/admin/accounts/{id}/action adminAccountAction

Perform an admin action on an account.

--- tags: - admin

consumes: - multipart/form-data

produces: - application/json

parameters:

  • name: id required: true in: path description: ID of the account. type: string
  • name: type in: formData description: |- Type of action to be taken. One of: disable, silence, suspend. type: string required: true
  • name: text in: formData description: Optional text describing why this action was taken. type: string

security: - OAuth2 Bearer:

  • admin

responses:

'200':
  description: OK
'400':
   description: bad request
'401':
   description: unauthorized
'403':
   description: forbidden
'404':
   description: not found
'406':
   description: not acceptable
'500':
   description: internal server error

func (*Module) DomainBlockDELETEHandler

func (m *Module) DomainBlockDELETEHandler(c *gin.Context)

DomainBlockDELETEHandler swagger:operation DELETE /api/v1/admin/domain_blocks/{id} domainBlockDelete

Delete domain block with the given ID.

--- tags: - admin

produces: - application/json

parameters:

  • name: id type: string description: The id of the domain block. in: path required: true

security: - OAuth2 Bearer:

  • admin

responses:

'200':
  description: The domain block that was just deleted.
  schema:
    "$ref": "#/definitions/domainBlock"
'400':
   description: bad request
'401':
   description: unauthorized
'403':
   description: forbidden
'404':
   description: not found
'406':
   description: not acceptable
'500':
   description: internal server error

func (*Module) DomainBlockGETHandler

func (m *Module) DomainBlockGETHandler(c *gin.Context)

DomainBlockGETHandler swagger:operation GET /api/v1/admin/domain_blocks/{id} domainBlockGet

View domain block with the given ID.

--- tags: - admin

produces: - application/json

parameters:

  • name: id type: string description: The id of the domain block. in: path required: true

security: - OAuth2 Bearer:

  • admin

responses:

'200':
  description: The requested domain block.
  schema:
    "$ref": "#/definitions/domainBlock"
'400':
   description: bad request
'401':
   description: unauthorized
'403':
   description: forbidden
'404':
   description: not found
'406':
   description: not acceptable
'500':
   description: internal server error

func (*Module) DomainBlocksGETHandler

func (m *Module) DomainBlocksGETHandler(c *gin.Context)

DomainBlocksGETHandler swagger:operation GET /api/v1/admin/domain_blocks domainBlocksGet

View all domain blocks currently in place.

--- tags: - admin

produces: - application/json

parameters:

  • name: export type: boolean description: |- If set to true, then each entry in the returned list of domain blocks will only consist of the fields 'domain' and 'public_comment'. This is perfect for when you want to save and share a list of all the domains you have blocked on your instance, so that someone else can easily import them, but you don't need them to see the database IDs of your blocks, or private comments etc. in: query required: false

security: - OAuth2 Bearer:

  • admin

responses:

'200':
  description: All domain blocks currently in place.
  schema:
    type: array
    items:
      "$ref": "#/definitions/domainBlock"
'400':
   description: bad request
'401':
   description: unauthorized
'403':
   description: forbidden
'404':
   description: not found
'406':
   description: not acceptable
'500':
   description: internal server error

func (*Module) DomainBlocksPOSTHandler

func (m *Module) DomainBlocksPOSTHandler(c *gin.Context)

DomainBlocksPOSTHandler swagger:operation POST /api/v1/admin/domain_blocks domainBlockCreate

Create one or more domain blocks, from a string or a file.

Note that you have two options when using this endpoint: either you can set `import` to true and upload a file containing multiple domain blocks, JSON-formatted, or you can leave import as false, and just add one domain block.

The format of the json file should be something like: `[{"domain":"example.org"},{"domain":"whatever.com","public_comment":"they smell"}]`

--- tags: - admin

consumes: - multipart/form-data

produces: - application/json

parameters:

  • name: import in: query description: |- Signal that a list of domain blocks is being imported as a file. If set to true, then 'domains' must be present as a JSON-formatted file. If set to false, then 'domains' will be ignored, and 'domain' must be present. type: boolean
  • name: domains in: formData description: |- JSON-formatted list of domain blocks to import. This is only used if `import` is set to true. type: file
  • name: domain in: formData description: |- Single domain to block. Used only if `import` is not true. type: string
  • name: obfuscate in: formData description: |- Obfuscate the name of the domain when serving it publicly. Eg., 'example.org' becomes something like 'ex***e.org'. Used only if `import` is not true. type: boolean
  • name: public_comment in: formData description: |- Public comment about this domain block. Will be displayed alongside the domain block if you choose to share blocks. Used only if `import` is not true. type: string
  • name: private_comment in: formData description: |- Private comment about this domain block. Will only be shown to other admins, so this is a useful way of internally keeping track of why a certain domain ended up blocked. Used only if `import` is not true. type: string

security: - OAuth2 Bearer:

  • admin

responses:

'200':
  description: |-
    The newly created domain block, if `import` != `true`.
    Note that if a list has been imported, then an `array` of newly created domain blocks will be returned instead.
  schema:
    "$ref": "#/definitions/domainBlock"
'400':
   description: bad request
'401':
   description: unauthorized
'403':
   description: forbidden
'404':
   description: not found
'406':
   description: not acceptable
'500':
   description: internal server error

func (*Module) EmojiCreatePOSTHandler added in v0.2.0

func (m *Module) EmojiCreatePOSTHandler(c *gin.Context)

EmojiCreatePOSTHandler swagger:operation POST /api/v1/admin/custom_emojis emojiCreate

Upload and create a new instance emoji.

--- tags: - admin

consumes: - multipart/form-data

produces: - application/json

parameters:

  • name: shortcode in: formData description: |- The code to use for the emoji, which will be used by instance denizens to select it. This must be unique on the instance. type: string pattern: \w{2,30} required: true
  • name: image in: formData description: A png or gif image of the emoji. Animated pngs work too! type: file required: true

security: - OAuth2 Bearer:

  • admin

responses:

'200':
  description: The newly-created emoji.
  schema:
    "$ref": "#/definitions/emoji"
'400':
   description: bad request
'401':
   description: unauthorized
'403':
   description: forbidden
'404':
   description: not found
'406':
   description: not acceptable
'409':
   description: conflict -- domain/shortcode combo for emoji already exists
'500':
   description: internal server error

func (*Module) MediaCleanupPOSTHandler added in v0.3.4

func (m *Module) MediaCleanupPOSTHandler(c *gin.Context)

MediaCleanupPOSTHandler swagger:operation POST /api/v1/admin/media_cleanup mediaCleanup

Clean up remote media older than the specified number of days. Also cleans up unused headers + avatars from the media cache.

--- tags: - admin

consumes: - application/json - application/xml - application/x-www-form-urlencoded

produces: - application/json

security: - OAuth2 Bearer:

  • admin

responses:

'200':
  description: |-
   Echos the number of days requested. The cleanup is performed asynchronously after the request completes.
'400':
   description: bad request
'401':
   description: unauthorized
'403':
   description: forbidden
'404':
   description: not found
'406':
   description: not acceptable
'500':
   description: internal server error

func (*Module) Route

func (m *Module) Route(r router.Router) error

Route attaches all routes from this module to the given router

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL