Delete emojis, set their size
Signed-off-by: Vartan Benohanian <vartanbeno@gmail.com>
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -70,6 +71,13 @@ func (s *EmojiService) Get(ctx context.Context, subreddit string) ([]*Emoji, []*
|
|||||||
return nil, nil, resp, err
|
return nil, nil, resp, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
The response to this request is something like:
|
||||||
|
{
|
||||||
|
"snoomojis": { ... },
|
||||||
|
"t5_subredditId": { ... }
|
||||||
|
}
|
||||||
|
*/
|
||||||
defaultEmojis := root["snoomojis"]
|
defaultEmojis := root["snoomojis"]
|
||||||
var subredditEmojis []*Emoji
|
var subredditEmojis []*Emoji
|
||||||
|
|
||||||
@@ -82,3 +90,46 @@ func (s *EmojiService) Get(ctx context.Context, subreddit string) ([]*Emoji, []*
|
|||||||
|
|
||||||
return defaultEmojis, subredditEmojis, resp, nil
|
return defaultEmojis, subredditEmojis, resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete deletes the emoji from the subreddit.
|
||||||
|
func (s *EmojiService) Delete(ctx context.Context, subreddit string, emoji string) (*Response, error) {
|
||||||
|
path := fmt.Sprintf("api/v1/%s/emoji/%s", subreddit, emoji)
|
||||||
|
|
||||||
|
req, err := s.client.NewRequest(http.MethodDelete, path, nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return s.client.Do(ctx, req, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
//todo: fav subreddits
|
||||||
|
|
||||||
|
// SetSize sets the custom emoji size in the subreddit.
|
||||||
|
// Both height and width must be between 1 and 40 (inclusive).
|
||||||
|
func (s *EmojiService) SetSize(ctx context.Context, subreddit string, height, width int) (*Response, error) {
|
||||||
|
path := fmt.Sprintf("api/v1/%s/emoji_custom_size", subreddit)
|
||||||
|
|
||||||
|
form := url.Values{}
|
||||||
|
form.Set("height", fmt.Sprint(height))
|
||||||
|
form.Set("width", fmt.Sprint(width))
|
||||||
|
|
||||||
|
req, err := s.client.NewRequestWithForm(http.MethodPost, path, form)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return s.client.Do(ctx, req, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DisableCustomSize disables the custom emoji size in the subreddit.
|
||||||
|
func (s *EmojiService) DisableCustomSize(ctx context.Context, subreddit string) (*Response, error) {
|
||||||
|
path := fmt.Sprintf("api/v1/%s/emoji_custom_size", subreddit)
|
||||||
|
|
||||||
|
req, err := s.client.NewRequestWithForm(http.MethodPost, path, nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return s.client.Do(ctx, req, nil)
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package reddit
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"net/url"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
@@ -55,3 +56,53 @@ func TestEmojiService_Get(t *testing.T) {
|
|||||||
assert.Equal(t, expectedDefaultEmojis, defaultEmojis)
|
assert.Equal(t, expectedDefaultEmojis, defaultEmojis)
|
||||||
assert.Equal(t, expectedSubredditEmojis, subredditEmojis)
|
assert.Equal(t, expectedSubredditEmojis, subredditEmojis)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestEmojiService_Delete(t *testing.T) {
|
||||||
|
setup()
|
||||||
|
defer teardown()
|
||||||
|
|
||||||
|
mux.HandleFunc("/api/v1/testsubreddit/emoji/testemoji", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
assert.Equal(t, http.MethodDelete, r.Method)
|
||||||
|
})
|
||||||
|
|
||||||
|
_, err := client.Emoji.Delete(ctx, "testsubreddit", "testemoji")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestEmojiService_SetSize(t *testing.T) {
|
||||||
|
setup()
|
||||||
|
defer teardown()
|
||||||
|
|
||||||
|
mux.HandleFunc("/api/v1/testsubreddit/emoji_custom_size", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
assert.Equal(t, http.MethodPost, r.Method)
|
||||||
|
|
||||||
|
form := url.Values{}
|
||||||
|
form.Set("height", "20")
|
||||||
|
form.Set("width", "20")
|
||||||
|
|
||||||
|
err := r.ParseForm()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, form, r.Form)
|
||||||
|
})
|
||||||
|
|
||||||
|
_, err := client.Emoji.SetSize(ctx, "testsubreddit", 20, 20)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestEmojiService_DisableCustomSize(t *testing.T) {
|
||||||
|
setup()
|
||||||
|
defer teardown()
|
||||||
|
|
||||||
|
mux.HandleFunc("/api/v1/testsubreddit/emoji_custom_size", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
assert.Equal(t, http.MethodPost, r.Method)
|
||||||
|
|
||||||
|
form := url.Values{}
|
||||||
|
|
||||||
|
err := r.ParseForm()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, form, r.Form)
|
||||||
|
})
|
||||||
|
|
||||||
|
_, err := client.Emoji.DisableCustomSize(ctx, "testsubreddit")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user