summaryrefslogtreecommitdiff
path: root/internal/api/model/search.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2023-06-21 18:26:40 +0200
committerLibravatar GitHub <noreply@github.com>2023-06-21 17:26:40 +0100
commit831ae09f8bab04af854243421047371339c3e190 (patch)
treef7709d478cc363dc1899bdb658fe20e2dc7986f3 /internal/api/model/search.go
parent[docs] Disambiguate docker version, don't recommend opening localhost (#1913) (diff)
downloadgotosocial-831ae09f8bab04af854243421047371339c3e190.tar.xz
[feature] Add partial text search for accounts + statuses (#1836)
Diffstat (limited to 'internal/api/model/search.go')
-rw-r--r--internal/api/model/search.go78
1 files changed, 14 insertions, 64 deletions
diff --git a/internal/api/model/search.go b/internal/api/model/search.go
index f7b86f884..664bf7b26 100644
--- a/internal/api/model/search.go
+++ b/internal/api/model/search.go
@@ -17,74 +17,24 @@
package model
-// SearchQuery models a search request.
-//
-// swagger:parameters searchGet
-type SearchQuery struct {
- // If type is `statuses`, then statuses returned will be authored only by this account.
- //
- // in: query
- AccountID string `json:"account_id"`
- // Return results *older* than this id.
- //
- // The entry with this ID will not be included in the search results.
- // in: query
- MaxID string `json:"max_id"`
- // Return results *newer* than this id.
- //
- // The entry with this ID will not be included in the search results.
- // in: query
- MinID string `json:"min_id"`
- // Type of the search query to perform.
- //
- // Must be one of: `accounts`, `hashtags`, `statuses`.
- //
- // enum:
- // - accounts
- // - hashtags
- // - statuses
- // required: true
- // in: query
- Type string `json:"type"`
- // Filter out tags that haven't been reviewed and approved by an instance admin.
- //
- // default: false
- // in: query
- ExcludeUnreviewed bool `json:"exclude_unreviewed"`
- // String to use as a search query.
- //
- // For accounts, this should be in the format `@someaccount@some.instance.com`, or the format `https://some.instance.com/@someaccount`
- //
- // For a status, this can be in the format: `https://some.instance.com/@someaccount/SOME_ID_OF_A_STATUS`
- //
- // required: true
- // in: query
- Query string `json:"q"`
- // Attempt to resolve the query by performing a remote webfinger lookup, if the query includes a remote host.
- // default: false
- Resolve bool `json:"resolve"`
- // Maximum number of results to load, per type.
- // default: 20
- // minimum: 1
- // maximum: 40
- // in: query
- Limit int `json:"limit"`
- // Offset for paginating search results.
- //
- // default: 0
- // in: query
- Offset int `json:"offset"`
- // Only include accounts that the searching account is following.
- // default: false
- // in: query
- Following bool `json:"following"`
+// SearchRequest models a search request.
+type SearchRequest struct {
+ MaxID string
+ MinID string
+ Limit int
+ Offset int
+ Query string
+ QueryType string
+ Resolve bool
+ Following bool
+ ExcludeUnreviewed bool
}
// SearchResult models a search result.
//
// swagger:model searchResult
type SearchResult struct {
- Accounts []Account `json:"accounts"`
- Statuses []Status `json:"statuses"`
- Hashtags []Tag `json:"hashtags"`
+ Accounts []*Account `json:"accounts"`
+ Statuses []*Status `json:"statuses"`
+ Hashtags []*Tag `json:"hashtags"`
}