summaryrefslogtreecommitdiff
path: root/internal/processing/admin.go
diff options
context:
space:
mode:
authorLibravatar Tobi Smethurst <31960611+tsmethurst@users.noreply.github.com>2021-07-05 13:23:03 +0200
committerLibravatar GitHub <noreply@github.com>2021-07-05 13:23:03 +0200
commitd389e7b150df6ecd215c7b661b294ea153ad0103 (patch)
tree8739e3103cb5130875d903cc7fc72fd9db3b8434 /internal/processing/admin.go
parentFix 404 contact (#74) (diff)
downloadgotosocial-d389e7b150df6ecd215c7b661b294ea153ad0103.tar.xz
Domain block (#76)
* start work on admin domain blocking * move stuff around + further work on domain blocks * move + restructure processor * prep work for deleting account * tidy * go fmt * formatting * domain blocking more work * check domain blocks way earlier on * progress on delete account * delete more stuff when an account is gone * and more... * domain blocky block block * get individual domain block, delete a block
Diffstat (limited to 'internal/processing/admin.go')
-rw-r--r--internal/processing/admin.go56
1 files changed, 14 insertions, 42 deletions
diff --git a/internal/processing/admin.go b/internal/processing/admin.go
index 6ee3a059f..73ac32c7a 100644
--- a/internal/processing/admin.go
+++ b/internal/processing/admin.go
@@ -19,55 +19,27 @@
package processing
import (
- "bytes"
- "errors"
- "fmt"
- "io"
-
apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model"
- "github.com/superseriousbusiness/gotosocial/internal/id"
+ "github.com/superseriousbusiness/gotosocial/internal/gtserror"
"github.com/superseriousbusiness/gotosocial/internal/oauth"
)
func (p *processor) AdminEmojiCreate(authed *oauth.Auth, form *apimodel.EmojiCreateRequest) (*apimodel.Emoji, error) {
- if !authed.User.Admin {
- return nil, fmt.Errorf("user %s not an admin", authed.User.ID)
- }
-
- // open the emoji and extract the bytes from it
- f, err := form.Image.Open()
- if err != nil {
- return nil, fmt.Errorf("error opening emoji: %s", err)
- }
- buf := new(bytes.Buffer)
- size, err := io.Copy(buf, f)
- if err != nil {
- return nil, fmt.Errorf("error reading emoji: %s", err)
- }
- if size == 0 {
- return nil, errors.New("could not read provided emoji: size 0 bytes")
- }
-
- // allow the mediaHandler to work its magic of processing the emoji bytes, and putting them in whatever storage backend we're using
- emoji, err := p.mediaHandler.ProcessLocalEmoji(buf.Bytes(), form.Shortcode)
- if err != nil {
- return nil, fmt.Errorf("error reading emoji: %s", err)
- }
+ return p.adminProcessor.EmojiCreate(authed.Account, authed.User, form)
+}
- emojiID, err := id.NewULID()
- if err != nil {
- return nil, err
- }
- emoji.ID = emojiID
+func (p *processor) AdminDomainBlockCreate(authed *oauth.Auth, form *apimodel.DomainBlockCreateRequest) (*apimodel.DomainBlock, gtserror.WithCode) {
+ return p.adminProcessor.DomainBlockCreate(authed.Account, form)
+}
- mastoEmoji, err := p.tc.EmojiToMasto(emoji)
- if err != nil {
- return nil, fmt.Errorf("error converting emoji to mastotype: %s", err)
- }
+func (p *processor) AdminDomainBlocksGet(authed *oauth.Auth, export bool) ([]*apimodel.DomainBlock, gtserror.WithCode) {
+ return p.adminProcessor.DomainBlocksGet(authed.Account, export)
+}
- if err := p.db.Put(emoji); err != nil {
- return nil, fmt.Errorf("database error while processing emoji: %s", err)
- }
+func (p *processor) AdminDomainBlockGet(authed *oauth.Auth, id string, export bool) (*apimodel.DomainBlock, gtserror.WithCode) {
+ return p.adminProcessor.DomainBlockGet(authed.Account, id, export)
+}
- return &mastoEmoji, nil
+func (p *processor) AdminDomainBlockDelete(authed *oauth.Auth, id string) (*apimodel.DomainBlock, gtserror.WithCode) {
+ return p.adminProcessor.DomainBlockDelete(authed.Account, id)
}