Rails – Asana APIで未完了タスクリストを取得する

やりたいこと

RailsアプリでAsana APIを使い未完了のタスクリストを取得する。

前提

実装例

Serviceオブジェクト


module Asana
  module Tasks
    class FindByProjectService
      attr_accessor :client, :project_id, :time

      def initialize(project_id, time)
        @client =
          Asana::Client.new do |c|
            c.authentication :oauth2, bearer_token: ASANA_BEARER_TOKEN
          end
        @project_id = project_id
        @time = time.to_time.iso8601
      end

      def execute
        client.tasks.find_all(
          project: project_id,
          completed_since: Time.now.to_time.iso8601,
          modified_since: time
        )
      end
    end
  end
end

ポイント

  • 「client.tasks.find_by_project」では、クエリパラメータを付与できないので「client.tasks.find_all」を使う。
  • 「completed_since: Time.now.to_time.iso8601」で未完了のタスクのみを抽出できる。

Sources

兵庫県西宮市生まれのフリーランスRailsエンジニア。海外を拠点にデジタルノマド生活中。/ 前職・資格:公認会計士 / プログラミング言語:Ruby, JavaScript, HTML, CSS / 日本語・英語
コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です