status.go
changeset 230 d13e9a780d91
parent 207 301d5b94be3f
child 231 741291bb4772
equal deleted inserted replaced
229:69f29aacd5bc 230:d13e9a780d91
    11 	"strconv"
    11 	"strconv"
    12 
    12 
    13 	"github.com/pkg/errors"
    13 	"github.com/pkg/errors"
    14 	"github.com/sendgrid/rest"
    14 	"github.com/sendgrid/rest"
    15 )
    15 )
       
    16 
       
    17 // PostStatusParams contains option fields for the PostStatus command
       
    18 type PostStatusParams struct {
       
    19 	Text        string
       
    20 	InReplyTo   int64
       
    21 	MediaIDs    []int64
       
    22 	Sensitive   bool
       
    23 	SpoilerText string
       
    24 	Visibility  string
       
    25 }
    16 
    26 
    17 // updateStatusOptions contains option fields for POST and DELETE API calls
    27 // updateStatusOptions contains option fields for POST and DELETE API calls
    18 type updateStatusOptions struct {
    28 type updateStatusOptions struct {
    19 	// The ID is used for most commands
    29 	// The ID is used for most commands
    20 	ID int64
    30 	ID int64
   194 }
   204 }
   195 
   205 
   196 // PostStatus posts a new "toot"
   206 // PostStatus posts a new "toot"
   197 // All parameters but "text" can be empty.
   207 // All parameters but "text" can be empty.
   198 // Visibility must be empty, or one of "direct", "private", "unlisted" and "public".
   208 // Visibility must be empty, or one of "direct", "private", "unlisted" and "public".
   199 func (mc *Client) PostStatus(text string, inReplyTo int64, mediaIDs []int64, sensitive bool, spoilerText string, visibility string) (*Status, error) {
   209 func (mc *Client) PostStatus(cmdParams PostStatusParams) (*Status, error) {
   200 	var status Status
   210 	var status Status
   201 	o := updateStatusOptions{
   211 	o := updateStatusOptions{
   202 		Status:      text,
   212 		Status:      cmdParams.Text,
   203 		InReplyToID: inReplyTo,
   213 		InReplyToID: cmdParams.InReplyTo,
   204 		MediaIDs:    mediaIDs,
   214 		MediaIDs:    cmdParams.MediaIDs,
   205 		Sensitive:   sensitive,
   215 		Sensitive:   cmdParams.Sensitive,
   206 		SpoilerText: spoilerText,
   216 		SpoilerText: cmdParams.SpoilerText,
   207 		Visibility:  visibility,
   217 		Visibility:  cmdParams.Visibility,
   208 	}
   218 	}
   209 
   219 
   210 	err := mc.updateStatusData("status", o, &status)
   220 	err := mc.updateStatusData("status", o, &status)
   211 	if err != nil {
   221 	if err != nil {
   212 		return nil, err
   222 		return nil, err