class Abt::Providers::Asana::Services::ProjectPicker

Attributes

cli[R]
config[R]

Public Class Methods

call(**args) click to toggle source
# File lib/abt/providers/asana/services/project_picker.rb, line 17
def self.call(**args)
  new(**args).call
end
new(cli:, config:) click to toggle source
# File lib/abt/providers/asana/services/project_picker.rb, line 23
def initialize(cli:, config:)
  @cli = cli
  @config = config
end

Public Instance Methods

call() click to toggle source
# File lib/abt/providers/asana/services/project_picker.rb, line 28
def call
  project = cli.prompt.search("Select a project", projects)
  path = Path.from_gids(project_gid: project["gid"])

  Result.new(project: project, path: path)
end

Private Instance Methods

api() click to toggle source
# File lib/abt/providers/asana/services/project_picker.rb, line 47
def api
  Abt::Providers::Asana::Api.new(access_token: config.access_token)
end
projects() click to toggle source
# File lib/abt/providers/asana/services/project_picker.rb, line 37
def projects
  @projects ||= begin
    cli.warn("Fetching projects...")
    api.get_paged("projects",
                  workspace: config.workspace_gid,
                  archived: false,
                  opt_fields: "name,permalink_url")
  end
end