Class: Basecamp::Services::MessagesService

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

Overview

Service for Messages operations

Instance Method Summary collapse

Constructor Details

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

Instance Method Details

#create(board_id:, subject:, content: nil, status: nil, category_id: nil, subscriptions: nil, visible_to_clients: nil) ⇒ Hash

Create a new message on a message board

Parameters:

  • board_id (Integer)

    board id ID

  • subject (String)

    subject

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

    content

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

    active|drafted

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

    category id

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

    subscriptions

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

    visible to clients

Returns:

  • (Hash)

    response data



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

def create(board_id:, subject:, content: nil, status: nil, category_id: nil, subscriptions: nil, visible_to_clients: nil)
  with_operation(service: "messages", operation: "create", is_mutation: true, resource_id: board_id) do
    http_post("/message_boards/#{board_id}/messages.json", body: compact_params(subject: subject, content: content, status: status, category_id: category_id, subscriptions: subscriptions, visible_to_clients: visible_to_clients)).json
  end
end

#get(message_id:) ⇒ Hash

Get a single message by id

Parameters:

  • message_id (Integer)

    message id ID

Returns:

  • (Hash)

    response data



42
43
44
45
46
# File 'lib/basecamp/generated/services/messages_service.rb', line 42

def get(message_id:)
  with_operation(service: "messages", operation: "get", is_mutation: false, resource_id: message_id) do
    http_get("/messages/#{message_id}", operation: "GetMessage").json
  end
end

#list(board_id:, sort: nil, direction: nil, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>

List messages on a message board

Parameters:

  • board_id (Integer)

    board id ID

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

    created_at|updated_at

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

    asc|desc

  • 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)



17
18
19
20
21
22
# File 'lib/basecamp/generated/services/messages_service.rb', line 17

def list(board_id:, sort: nil, direction: nil, page: nil, max_items: nil)
  wrap_paginated(service: "messages", operation: "list", is_mutation: false, resource_id: board_id) do
    params = compact_query_params(sort: sort, direction: direction, page: page)
    paginate("/message_boards/#{board_id}/messages.json", params: params, operation: "ListMessages", max_items: max_items)
  end
end

#pin(message_id:) ⇒ void

This method returns an undefined value.

Pin a message to the top of the message board

Parameters:

  • message_id (Integer)

    message id ID



64
65
66
67
68
69
# File 'lib/basecamp/generated/services/messages_service.rb', line 64

def pin(message_id:)
  with_operation(service: "messages", operation: "pin", is_mutation: true, resource_id: message_id) do
    http_post("/recordings/#{message_id}/pin.json")
    nil
  end
end

#unpin(message_id:) ⇒ void

This method returns an undefined value.

Unpin a message from the message board

Parameters:

  • message_id (Integer)

    message id ID



74
75
76
77
78
79
# File 'lib/basecamp/generated/services/messages_service.rb', line 74

def unpin(message_id:)
  with_operation(service: "messages", operation: "unpin", is_mutation: true, resource_id: message_id) do
    http_delete("/recordings/#{message_id}/pin.json")
    nil
  end
end

#update(message_id:, subject: nil, content: nil, status: nil, category_id: nil) ⇒ Hash

Update an existing message

Parameters:

  • message_id (Integer)

    message id ID

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

    subject

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

    content

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

    active|drafted

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

    category id

Returns:

  • (Hash)

    response data



55
56
57
58
59
# File 'lib/basecamp/generated/services/messages_service.rb', line 55

def update(message_id:, subject: nil, content: nil, status: nil, category_id: nil)
  with_operation(service: "messages", operation: "update", is_mutation: true, resource_id: message_id) do
    http_put("/messages/#{message_id}", body: compact_params(subject: subject, content: content, status: status, category_id: category_id)).json
  end
end