refactor: CreateStatusForm; fix: InvalidStatusVisibilityError
This commit is contained in:
parent
4038814d6a
commit
74220dd25e
3 changed files with 36 additions and 48 deletions
|
@ -25,42 +25,20 @@ func (g *Client) GetStatus(statusID string) (model.Status, error) {
|
||||||
return status, nil
|
return status, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *Client) CreateStatus(
|
type CreateStatusForm struct {
|
||||||
content,
|
Content string `json:"status"`
|
||||||
contentType,
|
|
||||||
language,
|
|
||||||
spoilerText string,
|
|
||||||
boostable,
|
|
||||||
federated,
|
|
||||||
likeable,
|
|
||||||
replyable,
|
|
||||||
sensitive bool,
|
|
||||||
visibility model.StatusVisibility,
|
|
||||||
) (model.Status, error) {
|
|
||||||
form := struct {
|
|
||||||
ContentType string `json:"content_type"`
|
ContentType string `json:"content_type"`
|
||||||
Language string `json:"language"`
|
Language string `json:"language"`
|
||||||
SpoilerText string `json:"spoiler_text"`
|
SpoilerText string `json:"spoiler_text"`
|
||||||
Status string `json:"status"`
|
|
||||||
Boostable bool `json:"boostable"`
|
Boostable bool `json:"boostable"`
|
||||||
Federated bool `json:"federated"`
|
Federated bool `json:"federated"`
|
||||||
Likeable bool `json:"likeable"`
|
Likeable bool `json:"likeable"`
|
||||||
Replyable bool `json:"replyable"`
|
Replyable bool `json:"replyable"`
|
||||||
Sensitive bool `json:"sensitive"`
|
Sensitive bool `json:"sensitive"`
|
||||||
Visibility model.StatusVisibility `json:"visibility"`
|
Visibility model.StatusVisibility `json:"visibility"`
|
||||||
}{
|
|
||||||
ContentType: contentType,
|
|
||||||
Language: language,
|
|
||||||
SpoilerText: spoilerText,
|
|
||||||
Status: content,
|
|
||||||
Boostable: boostable,
|
|
||||||
Federated: federated,
|
|
||||||
Likeable: likeable,
|
|
||||||
Sensitive: sensitive,
|
|
||||||
Replyable: replyable,
|
|
||||||
Visibility: visibility,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (g *Client) CreateStatus(form CreateStatusForm) (model.Status, error) {
|
||||||
data, err := json.Marshal(form)
|
data, err := json.Marshal(form)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return model.Status{}, fmt.Errorf("unable to create the JSON form; %w", err)
|
return model.Status{}, fmt.Errorf("unable to create the JSON form; %w", err)
|
||||||
|
|
|
@ -126,21 +126,23 @@ func (c *CreateExecutor) createStatus(gtsClient *client.Client) error {
|
||||||
|
|
||||||
parsedVisibility := model.ParseStatusVisibility(visibility)
|
parsedVisibility := model.ParseStatusVisibility(visibility)
|
||||||
if parsedVisibility == model.StatusVisibilityUnknown {
|
if parsedVisibility == model.StatusVisibilityUnknown {
|
||||||
return fmt.Errorf("invalid status visibility %q", visibility)
|
return InvalidStatusVisibilityError{Visibility: visibility}
|
||||||
}
|
}
|
||||||
|
|
||||||
status, err := gtsClient.CreateStatus(
|
form := client.CreateStatusForm{
|
||||||
c.content,
|
Content: c.content,
|
||||||
c.contentType,
|
ContentType: c.contentType,
|
||||||
language,
|
Language: language,
|
||||||
c.spoilerText,
|
SpoilerText: c.spoilerText,
|
||||||
c.boostable,
|
Boostable: c.boostable,
|
||||||
c.federated,
|
Federated: c.federated,
|
||||||
c.likeable,
|
Likeable: c.likeable,
|
||||||
c.replyable,
|
Replyable: c.replyable,
|
||||||
c.sensitive,
|
Sensitive: c.sensitive,
|
||||||
parsedVisibility,
|
Visibility: parsedVisibility,
|
||||||
)
|
}
|
||||||
|
|
||||||
|
status, err := gtsClient.CreateStatus(form)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("unable to create the status; %w", err)
|
return fmt.Errorf("unable to create the status; %w", err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,3 +53,11 @@ type EmptyContentError struct{}
|
||||||
func (e EmptyContentError) Error() string {
|
func (e EmptyContentError) Error() string {
|
||||||
return "content should not be empty"
|
return "content should not be empty"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type InvalidStatusVisibilityError struct {
|
||||||
|
Visibility string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e InvalidStatusVisibilityError) Error() string {
|
||||||
|
return "'" + e.Visibility + "' is an invalid status visibility value"
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue