package anilist func (api *Api) GetUserByName(name string) (*User, error) { query := `query ($name: String) { User (name: $name) ` + subSelectionUser + ` }` vars := map[string]interface{}{ "name": name, } resp := responseObj[struct { User *User }]{} err := request(api, query, vars, &resp) if err != nil { return nil, err } return resp.Data.User, nil } func (api *Api) GetUserByID(id int) (*User, error) { query := `query ($id: Int) { User (id: $id) ` + subSelectionUser + ` }` vars := map[string]interface{}{ "id": id, } resp := responseObj[struct { User *User }]{} err := request(api, query, vars, &resp) if err != nil { return nil, err } return resp.Data.User, nil } func (api *Api) SearchUsers(search string, onError func(error)) <-chan *User { vars := map[string]interface{}{"search": search} resp := responseObj[*page[User]]{} return requestPaged(api, searchUsersQuery, vars, &resp, onError) } const ( searchUsersQuery = `query ($search: String, $page: Int) { Page (page: $page) { pageInfo ` + subSelectionPageInfo + ` users (search: $search) ` + subSelectionUser + ` } }` )