Skip to content

Use DSL in filter service#73

Open
kjtbw wants to merge 5 commits into
nomlab:masterfrom
kjtbw:20181127_filter
Open

Use DSL in filter service#73
kjtbw wants to merge 5 commits into
nomlab:masterfrom
kjtbw:20181127_filter

Conversation

@kjtbw
Copy link
Copy Markdown
Member

@kjtbw kjtbw commented Nov 27, 2018

#72 に対するPRである.

やったこと

  • プロトタイプとして,DSLによる予定共有の処理をfilterサービスに実装した.今回は,summary:打合せ,hide:description, slackというクエリを適用する処理を実装した.
  • DSLの利用にあたり,以下の4つのクラスを作成した.
    • matcher: どの予定を編集するかを情報としてもつ.(例: summary:打合せ)
    • action: 予定をどのように編集するかを情報としてもつ.(例: hide:description)
    • outlet: 予定をどのように公開するかを情報としてもつ.(例: slack)
    • funnel: 上記のmatcher, action, outletをもつ.
  • filterサービスは以下の流れで処理をする.
    1. Funnel.new(query)で,与えられたクエリを分解し,matcher, action, outletを生成する.
    2. Funnel.apply(event)で,eventに対してfunnelを適用する.これにより,予定の編集と公開が行われる.

今後の課題

  • matcher, action, outletの処理の詳細化
    • 現在はsummary:打合せ,hide:description, slackというクエリを処理することに依存した処理になっているため,他の形式のクエリも利用できるように処理を詳細化する必要がある.
  • 設定ファイルの利用
    • 現在,送信先のポートや,クエリはコードに直書きして指定している.このため,jsonなどの設定ファイルから読み出すようにする必要がある.
  • EventCollectionの受信と送信
    • 現在, filterサービスはevent.protoで定義されたeventを受信して,Textとして予定を送信している.calendar_watcherはEventの配列であるEventCollectionの送信が行えるため,filterサービスもEventCollectionの受信と送信が行える必要がある.

@kjtbw kjtbw changed the title 20181127 filter Use DSL in filter service Nov 27, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant