Class: Basecamp::Services::SearchService

Inherits:
BaseService show all
Defined in:
lib/basecamp/generated/services/search_service.rb

Overview

Service for Search operations

Instance Method Summary collapse

Constructor Details

This class inherits a constructor from Basecamp::Services::BaseService

Instance Method Details

#metadataHash

Get search metadata (available filter options)

Returns:

  • (Hash)

    response data



34
35
36
37
38
# File 'lib/basecamp/generated/services/search_service.rb', line 34

def ()
  with_operation(service: "search", operation: "metadata", is_mutation: false) do
    http_get("/searches/metadata.json").json
  end
end

#search(q:, type_names: nil, bucket_ids: nil, creator_ids: nil, file_type: nil, exclude_chat: nil, since: nil, sort: nil, type: nil, bucket_id: nil, creator_id: nil) ⇒ Enumerator<Hash>

Search for content across the account

Parameters:

  • q (String)

    q

  • type_names (Array, nil) (defaults to: nil)

    Recording types to include. Use key values from the metadata endpoint's recording_search_types. Available since Basecamp 5.

  • bucket_ids (Array, nil) (defaults to: nil)

    Project IDs to filter by. Available since Basecamp 5.

  • creator_ids (Array, nil) (defaults to: nil)

    Creator person IDs to filter by. Available since Basecamp 5.

  • file_type (String, nil) (defaults to: nil)

    Filter attachments by type. Use key values from the metadata endpoint's file_search_types.

  • exclude_chat (Boolean, nil) (defaults to: nil)

    Set to true to exclude chat results.

  • since (String, nil) (defaults to: nil)

    last_7_days|last_30_days|last_90_days|last_12_months|forever

  • sort (String, nil) (defaults to: nil)

    best_match|recency

  • type (String, nil) (defaults to: nil)

    Deprecated: prefer type_names.

  • bucket_id (Integer, nil) (defaults to: nil)

    Deprecated: prefer bucket_ids.

  • creator_id (Integer, nil) (defaults to: nil)

    Deprecated: prefer creator_ids.

Returns:

  • (Enumerator<Hash>)

    paginated results



25
26
27
28
29
30
# File 'lib/basecamp/generated/services/search_service.rb', line 25

def search(q:, type_names: nil, bucket_ids: nil, creator_ids: nil, file_type: nil, exclude_chat: nil, since: nil, sort: nil, type: nil, bucket_id: nil, creator_id: nil)
  wrap_paginated(service: "search", operation: "search", is_mutation: false) do
    params = compact_query_params(q: q, type_names: type_names, bucket_ids: bucket_ids, creator_ids: creator_ids, file_type: file_type, exclude_chat: exclude_chat, since: since, sort: sort, type: type, bucket_id: bucket_id, creator_id: creator_id)
    paginate("/search.json", params: params)
  end
end