Class: Basecamp::Services::DocumentsService

Inherits:
BaseService
  • Object
show all
Defined in:
lib/basecamp/generated/services/documents_service.rb

Overview

Service for Documents operations

Instance Method Summary collapse

Constructor Details

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

Instance Method Details

#create(vault_id:, title:, content: nil, status: nil, subscriptions: nil, visible_to_clients: nil) ⇒ Hash

Create a new document in a vault

Parameters:

  • vault_id (Integer)

    vault id ID

  • title (String)

    title

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

    content

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

    active|drafted

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

    subscriptions

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

    visible to clients

Returns:

  • (Hash)

    response data



50
51
52
53
54
# File 'lib/basecamp/generated/services/documents_service.rb', line 50

def create(vault_id:, title:, content: nil, status: nil, subscriptions: nil, visible_to_clients: nil)
  with_operation(service: "documents", operation: "create", is_mutation: true, resource_id: vault_id) do
    http_post("/vaults/#{vault_id}/documents.json", body: compact_params(title: title, content: content, status: status, subscriptions: subscriptions, visible_to_clients: visible_to_clients)).json
  end
end

#get(document_id:) ⇒ Hash

Get a single document by id

Parameters:

  • document_id (Integer)

    document id ID

Returns:

  • (Hash)

    response data



13
14
15
16
17
# File 'lib/basecamp/generated/services/documents_service.rb', line 13

def get(document_id:)
  with_operation(service: "documents", operation: "get", is_mutation: false, resource_id: document_id) do
    http_get("/documents/#{document_id}", operation: "GetDocument").json
  end
end

#list(vault_id:, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>

List documents in a vault

Parameters:

  • vault_id (Integer)

    vault id ID

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

    Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8.

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

    cap on items yielded across pages; nil or non-positive means no cap

Returns:

  • (ListEnumerator<Hash>)

    lazily paginated results (#meta carries pagination metadata)



35
36
37
38
39
40
# File 'lib/basecamp/generated/services/documents_service.rb', line 35

def list(vault_id:, page: nil, max_items: nil)
  wrap_paginated(service: "documents", operation: "list", is_mutation: false, resource_id: vault_id) do
    params = compact_query_params(page: page)
    paginate("/vaults/#{vault_id}/documents.json", params: params, operation: "ListDocuments", max_items: max_items)
  end
end

#replace(document_id:, title: nil, content: nil) ⇒ Hash

Replace a document with a new complete representation.

Parameters:

  • document_id (Integer)

    document id ID

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

    title

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

    content

Returns:

  • (Hash)

    response data



24
25
26
27
28
# File 'lib/basecamp/generated/services/documents_service.rb', line 24

def replace(document_id:, title: nil, content: nil)
  with_operation(service: "documents", operation: "replace", is_mutation: true, resource_id: document_id) do
    http_put("/documents/#{document_id}", body: compact_params(title: title, content: content)).json
  end
end