Class: Basecamp::Services::FoldersService

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

Overview

Service for Folders operations

Instance Method Summary collapse

Constructor Details

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

Instance Method Details

#create_folder(name: nil, project_ids: nil) ⇒ Hash

Create a folder for the authenticated user and file the given projects into it.

Parameters:

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

    The folder's name. Defaults to New folder when blank, null, or omitted.

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

    IDs of the projects to file into the folder — the same ids the folder reports back as bucket_ids and expands as projects. This does not round-trip under its own name. Omit it, or send null or an empty array, for an empty folder.

Returns:

  • (Hash)

    response data



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

def create_folder(name: nil, project_ids: nil)
  with_operation(service: "folders", operation: "create_folder", is_mutation: true) do
    http_post("/stacks.json", body: compact_params(name: name, project_ids: project_ids)).json
  end
end

#delete_folder(folder_id:) ⇒ void

This method returns an undefined value.

Delete a folder and unpin its projects from the home screen (returns 204 No Content).

Parameters:

  • folder_id (Integer)

    folder id ID



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

def delete_folder(folder_id:)
  with_operation(service: "folders", operation: "delete_folder", is_mutation: true, resource_id: folder_id) do
    http_delete("/stacks/#{folder_id}")
    nil
  end
end

#get_folder(folder_id:) ⇒ Hash

Get one folder, with the projects grouped inside it expanded under projects.

Parameters:

  • folder_id (Integer)

    folder id ID

Returns:

  • (Hash)

    response data



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

def get_folder(folder_id:)
  with_operation(service: "folders", operation: "get_folder", is_mutation: false, resource_id: folder_id) do
    http_get("/stacks/#{folder_id}", operation: "GetFolder").json
  end
end

#list_foldersArray<Hash>

List the authenticated user's folders in home-screen order.

Returns:

  • (Array<Hash>)

    response data



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

def list_folders()
  with_operation(service: "folders", operation: "list_folders", is_mutation: false) do
    http_get("/stacks.json", operation: "ListFolders").json
  end
end

#update_folder(folder_id:, name:) ⇒ Hash

Rename a folder.

Parameters:

  • folder_id (Integer)

    folder id ID

  • name (String)

    The folder's new name. Blank is rejected with 422 — unlike create, update does not fall back to a default name.

Returns:

  • (Hash)

    response data



45
46
47
48
49
# File 'lib/basecamp/generated/services/folders_service.rb', line 45

def update_folder(folder_id:, name:)
  with_operation(service: "folders", operation: "update_folder", is_mutation: true, resource_id: folder_id) do
    http_put("/stacks/#{folder_id}", body: compact_params(name: name)).json
  end
end