Edit MultiCopyRequest struct

Signed-off-by: Vartan Benohanian <vartanbeno@gmail.com>
This commit is contained in:
Vartan Benohanian 2020-08-07 01:11:58 -04:00
parent 260df95025
commit 691eb965b8

View file

@ -7,6 +7,8 @@ import (
"fmt" "fmt"
"net/http" "net/http"
"net/url" "net/url"
"github.com/google/go-querystring/query"
) )
// MultiService handles communication with the multireddit // MultiService handles communication with the multireddit
@ -84,22 +86,12 @@ func (n *SubredditNames) MarshalJSON() ([]byte, error) {
// MultiCopyRequest represents a request to copy a multireddit. // MultiCopyRequest represents a request to copy a multireddit.
type MultiCopyRequest struct { type MultiCopyRequest struct {
FromPath string FromPath string `url:"from"`
ToPath string ToPath string `url:"to"`
// Raw markdown text. // Raw markdown text.
Description string Description string `url:"description_md,omitempty"`
// No longer than 50 characters. // No longer than 50 characters.
DisplayName string DisplayName string `url:"display_name,omitempty"`
}
// Form parameterizes the fields and returns the form.
func (r *MultiCopyRequest) Form() url.Values {
form := url.Values{}
form.Set("from", r.FromPath)
form.Set("to", r.ToPath)
form.Set("description_md", r.Description)
form.Set("display_name", r.DisplayName)
return form
} }
// MultiCreateOrUpdateRequest represents a request to create/update a multireddit. // MultiCreateOrUpdateRequest represents a request to create/update a multireddit.
@ -199,8 +191,12 @@ func (s *MultiService) Copy(ctx context.Context, copyRequest *MultiCopyRequest)
} }
path := "api/multi/copy" path := "api/multi/copy"
form, err := query.Values(copyRequest)
if err != nil {
return nil, nil, err
}
req, err := s.client.NewRequestWithForm(http.MethodPost, path, copyRequest.Form()) req, err := s.client.NewRequestWithForm(http.MethodPost, path, form)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }