Add search endpoint
This commit is contained in:
		
							
								
								
									
										23
									
								
								search.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								search.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					package lemmy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"context"
 | 
				
			||||||
 | 
						"net/http"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"go.arsenm.dev/go-lemmy/types"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (c *Client) Search(ctx context.Context, d types.Search) (*types.SearchResponse, error) {
 | 
				
			||||||
 | 
						ar := &types.SearchResponse{}
 | 
				
			||||||
 | 
						res, err := c.getReq(ctx, http.MethodGet, "/search", d, &ar)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						err = resError(res, ar.LemmyResponse)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return ar, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,5 +1,17 @@
 | 
				
			|||||||
package types
 | 
					package types
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type Search struct {
 | 
				
			||||||
 | 
						CommunityID   Optional[int]         `json:"community_id" url:"community_id"`
 | 
				
			||||||
 | 
						CommunityName Optional[string]      `json:"community_name" url:"community_name"`
 | 
				
			||||||
 | 
						CreatorID     Optional[int]         `json:"creator_id" url:"creator_id"`
 | 
				
			||||||
 | 
						Limit         Optional[int]         `json:"limit" url:"limit"`
 | 
				
			||||||
 | 
						ListingType   Optional[ListingType] `json:"listing_type" url:"listing_type"`
 | 
				
			||||||
 | 
						Page          Optional[int]         `json:"page" url:"page"`
 | 
				
			||||||
 | 
						Query         string                `json:"q" url:"q"`
 | 
				
			||||||
 | 
						Sort          Optional[SortType]    `json:"sort" url:"sort"`
 | 
				
			||||||
 | 
						Type          Optional[SearchType]  `json:"type_" url:"type_"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type SearchResponse struct {
 | 
					type SearchResponse struct {
 | 
				
			||||||
	Type        string           `json:"type,omitempty" url:"type,omitempty"`
 | 
						Type        string           `json:"type,omitempty" url:"type,omitempty"`
 | 
				
			||||||
	Comments    []CommentView    `json:"comments,omitempty" url:"comments,omitempty"`
 | 
						Comments    []CommentView    `json:"comments,omitempty" url:"comments,omitempty"`
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user