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



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

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



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

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

#list(board_id:, sort: nil, direction: nil) ⇒ Enumerator<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

Returns:

  • (Enumerator<Hash>)

    paginated results



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

def list(board_id:, sort: nil, direction: nil)
  wrap_paginated(service: "messages", operation: "list", is_mutation: false, resource_id: board_id) do
    params = compact_query_params(sort: sort, direction: direction)
    paginate("/message_boards/#{board_id}/messages.json", params: params)
  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



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

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



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

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



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

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