Update search result type (us rich tag structure)
authorMikael Berthe <mikael@lilotux.net>
Thu, 06 Sep 2018 00:23:40 +0200
changeset 236 5b87cc73ed97
parent 235 263da7f71f03
child 237 16c27106d83c
Update search result type (us rich tag structure) This change will let us use the same 'Results' object for both versions of the search API endpoint (v1 & v2).
search.go
types.go
--- a/search.go	Wed Sep 05 22:55:20 2018 +0200
+++ b/search.go	Thu Sep 06 00:23:40 2018 +0200
@@ -22,9 +22,20 @@
 		params["resolve"] = "true"
 	}
 
-	var results Results
-	if err := mc.apiCall("search", rest.Get, params, nil, nil, &results); err != nil {
+	var resultsV1 struct {
+		Results
+		Hashtags []string `json:"hashtags"`
+	}
+	if err := mc.apiCall("search", rest.Get, params, nil, nil, &resultsV1); err != nil {
 		return nil, err
 	}
+
+	var results Results
+	results.Accounts = resultsV1.Accounts
+	results.Statuses = resultsV1.Statuses
+	for _, t := range resultsV1.Hashtags {
+		results.Hashtags = append(results.Hashtags, Tag{Name: t})
+	}
+
 	return &results, nil
 }
--- a/types.go	Wed Sep 05 22:55:20 2018 +0200
+++ b/types.go	Thu Sep 06 00:23:40 2018 +0200
@@ -197,7 +197,7 @@
 type Results struct {
 	Accounts []Account `json:"accounts"`
 	Statuses []Status  `json:"statuses"`
-	Hashtags []string  `json:"hashtags"`
+	Hashtags []Tag     `json:"hashtags"`
 }
 
 // Status represents a Mastodon status entity